Chciałem znaleźć taki temat, którego choć część wykonania będzie miała wymiar praktyczny. Na grupie MI^2 składającej się głównie ze studentów i absolwentów MiNI PW i MIM UW funkcjonuje projekt CzasDojazdu. Ma on na celu dostarczenie aplikacji wyszukującej w Warszawie pokojów do wynajęcia pod kątem kryterium czasu dojazdu z mieszkania do pracy. Przeglądając go zauważyłem, że część danych pobieranych z portalu gumtree.pl jest błędnie zapisywanych (metraż), niektóre zaś są zupełnie pomijane (czy można palić lub trzymać zwierzęta, jaka jest preferowana płeć). Postanowiłem udoskonalić scraper funkcjonujący w tym projekcie, a na świeżo pobranych danych spróbowac zbudować model przewidujący ceny wynajmowanych pokoi.
Z pomocą pakietu rvest oraz wtyczki SelectorGadget działającej w przeglądarce Chromium udało mi się wydobyć ze stron z ofertami interesujące mnie dane. Kod znaduje się w repozytorium projektu CzasDojazdu. Kolejne rejestry zapisywane są w bazie danych SQLite. Ponieważ wdrożenie kodu na produkcję ze względów organizacyjnych w takich projektach nieco trwa, zdecydowałem się na przerobienie go tak, aby dane zapisywane były do plików *.csv. Przypatrując się pobranym ofertom wiedziałem, że ich liczba przez czas realizacji projektu nie urośnie do dużych rozmiarów.
W ramach przygotowania się do realizacji projektu ukończyłem dwa kursy.
Oraz zapoznałem się z takimi narzędziami jak Crontab, Flume, Hadoop HDFS i Spark (pakiet sparklyr).
# Ładowanie bibliotek
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(readr)
library(stringi)
Oferta dotycząca pokoju do wynajęcia na portalu gumtree.pl może zawierać następujące (powtarzalne) opcje wyboru:
Zbierane są też dane dotyczące daty dodania oferty, link do ogłoszenia, opis i tutuł. Te jednak tym razem nie będą nas interesować ze względu na swój unikalny charakter.
Przyjrzyjmy się im nieco bliżej.
# Ładowanie danych
dane1 <- read_csv("2016-10-26df.csv")
## Parsed with column specification:
## cols(
## data_dodania = col_character(),
## lokalizacja = col_character(),
## href = col_character(),
## opis = col_character(),
## adres = col_character(),
## cena = col_character(),
## tytuł = col_character(),
## do_wynajęcia_przez = col_character(),
## współdzielenie = col_character(),
## `wielkość_(m2)` = col_integer(),
## liczba_pokoi = col_character(),
## rodzaj_nieruchomości = col_character(),
## preferowana_płeć = col_character(),
## palący = col_character(),
## przyjazne_zwierzakom = col_character(),
## dostępny = col_character()
## )
dane2 <- read_csv("2016-11-17df.csv")
## Parsed with column specification:
## cols(
## data_dodania = col_character(),
## lokalizacja = col_character(),
## href = col_character(),
## opis = col_character(),
## adres = col_character(),
## cena = col_character(),
## tytuł = col_character(),
## do_wynajęcia_przez = col_character(),
## rodzaj_nieruchomości = col_character(),
## współdzielenie = col_character(),
## liczba_pokoi = col_character(),
## preferowana_płeć = col_character(),
## palący = col_character(),
## przyjazne_zwierzakom = col_character(),
## dostępny = col_character(),
## `wielkość_(m2)` = col_integer()
## )
pokoje <- rbind(dane1, dane2) %>% distinct()
rm(dane1, dane2)
# Dane pod lupą - obróbka
dim(pokoje)
## [1] 9321 16
str(pokoje)
## Classes 'tbl_df', 'tbl' and 'data.frame': 9321 obs. of 16 variables:
## $ data_dodania : chr "01/10/2016" "01/10/2016" "01/10/2016" "01/10/2016" ...
## $ lokalizacja : chr "Białołęka, Warszawa" "Bielany, Warszawa" "Bielany, Warszawa" "Bydgoszcz, Kujawsko - pomorskie" ...
## $ href : chr "https://www.gumtree.pl/a-pokoje-do-wynajecia/bialoleka/pokoje-pracownicze-noclegi-pracownicze-dla-firm+-kwatery/100168743856091"| __truncated__ "https://www.gumtree.pl/a-pokoje-do-wynajecia/bielany/pok%C3%B3j-dla-studentki-uksw-wat-awf-uw-od-pa%C5%BCdziernika/100179124557"| __truncated__ "https://www.gumtree.pl/a-pokoje-do-wynajecia/bielany/du%C5%BCy-pok%C3%B3j-w-pobli%C5%BCu-metra/1001791212730910660279809" "https://www.gumtree.pl/a-pokoje-do-wynajecia/bydgoszcz/pokoje-po-remoncie-w-centrum-miasta/1001791361140911038700709" ...
## $ opis : chr "Ofertę swoją kierujemy zarówno do dużych firm jak i indywidualnych grup, które wykonują różnego rodzaju prace w Warszawie lub o"| __truncated__ "Wynajme pokój umeblowany/kanapa ikea, szafa, biurko/Do metra stare bielany jest 5 minut.W mieszkaniu jest nowa pralka bosch, lo"| __truncated__ "Duży 20m2 pokój z loggią, w pobliżu metra Wawrzyszew. Pokój umeblowany, internet, widna kuchnia, przedpokój. Bardzo dobra komun"| __truncated__ "Miejsce w jasnym, przestronnym pokoju dwuosobowym o pow.17m2, w \r\nwyremontowanym mieszkaniu w kamienicy. Mieszkanie zlokalizo"| __truncated__ ...
## $ adres : chr "Bryły 42" NA "Bielany, Warszawa, Polska" "Gdańska" ...
## $ cena : chr "12 zł" "1 000 zł" "Proszę o kontakt" "400 zł" ...
## $ tytuł : chr "Pokoje pracownicze, noclegi pracownicze dla firm- kwatery" "POKÓJ DLA STUDENTKI UKSW, WAT, AWF, UW OD PAŻDZIERNIKA!!!!!!!!!!!!" "Duży pokój w pobliżu metra" "Pokoje po remoncie w centrum miasta" ...
## $ do_wynajęcia_przez : chr "Właściciel" "Właściciel" "Właściciel" "Właściciel" ...
## $ współdzielenie : chr "Współdzielenie pokoju" "Współdzielenie mieszkania/domu" "Współdzielenie mieszkania/domu" "Współdzielenie pokoju" ...
## $ wielkość_(m2) : int NA 80 59 17 NA 25 12 20 80 27 ...
## $ liczba_pokoi : chr NA "4 pokoje" "2 pokoje" "3 pokoje" ...
## $ rodzaj_nieruchomości: chr "Dom" "Mieszkanie" "Mieszkanie" "Mieszkanie" ...
## $ preferowana_płeć : chr NA "Kobieta" "Bez preferencji" "Bez preferencji" ...
## $ palący : chr NA "Nie" "Nie" "Nie" ...
## $ przyjazne_zwierzakom: chr NA "Nie" "Nie" "Nie" ...
## $ dostępny : chr NA "01/10/2016" "01/10/2016" "03/10/2016" ...
## - attr(*, "spec")=List of 2
## ..$ cols :List of 16
## .. ..$ data_dodania : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ lokalizacja : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ href : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ opis : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ adres : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ cena : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ tytuł : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ do_wynajęcia_przez : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ współdzielenie : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ wielkość_(m2) : list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## .. ..$ liczba_pokoi : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ rodzaj_nieruchomości: list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ preferowana_płeć : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ palący : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ przyjazne_zwierzakom: list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ dostępny : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## ..$ default: list()
## .. ..- attr(*, "class")= chr "collector_guess" "collector"
## ..- attr(*, "class")= chr "col_spec"
Z dostępnych kolumn pozostawimy te które są unikalne. Dodatkowo skorzystamy jednak z opisów w celu policzenia ilości występujacych w nich słów.
pokoje %>% names()
## [1] "data_dodania" "lokalizacja" "href"
## [4] "opis" "adres" "cena"
## [7] "tytuł" "do_wynajęcia_przez" "współdzielenie"
## [10] "wielkość_(m2)" "liczba_pokoi" "rodzaj_nieruchomości"
## [13] "preferowana_płeć" "palący" "przyjazne_zwierzakom"
## [16] "dostępny"
names(pokoje) <-
names(pokoje) %>% chartr("ąęółćśźż", "aeolcszz", .)
pokoje <-
pokoje %>%
rename(wielkosc = `wielkosc_(m2)`) %>%
select(-c(data_dodania, href, adres, tytul, dostepny)) %>%
mutate(
liczba_wyrazow = stri_count_words(opis)
)
pokoje %>%
select(-opis) %>%
lapply(
function(x) {
x %>%
table(useNA = "always") %>%
sort(decreasing = TRUE) %>%
head(20)
}
)
## $lokalizacja
## .
## Kraków, Małopolskie Poznań, Wielkopolskie Wrocław, Dolnośląskie
## 2894 1302 862
## Łódź, Łódzkie Mokotów, Warszawa Śródmieście, Warszawa
## 438 373 372
## Praga Południe, Warszawa Bielany, Warszawa Targówek, Warszawa
## 231 205 201
## Ursynów, Warszawa Katowice, Śląskie Wola, Warszawa
## 198 184 156
## Bemowo, Warszawa Ochota, Warszawa Lublin, Lubelskie
## 142 134 106
## Białołęka, Warszawa Gdańsk, Pomorskie Ursus, Warszawa
## 105 96 68
## Praga Północ, Warszawa Żoliborz, Warszawa
## 66 62
##
## $cena
## .
## Proszę o kontakt 600 zł 700 zł 800 zł
## 1608 701 536 534
## 500 zł 550 zł 650 zł 750 zł
## 507 458 441 344
## 900 zł 1 000 zł 450 zł 400 zł
## 322 294 294 293
## 850 zł 950 zł 1 200 zł 380 zł
## 246 179 165 132
## 1 100 zł 350 zł 300 zł 720 zł
## 128 112 57 54
##
## $do_wynajecia_przez
## .
## Właściciel <NA> Agencja
## 7988 764 569
##
## $wspoldzielenie
## .
## Współdzielenie mieszkania/domu Współdzielenie pokoju
## 6813 1423
## <NA>
## 1085
##
## $wielkosc
## .
## <NA> 12 20 10 15 50 14 60 25 16 18 80 55 9 11
## 2038 614 543 399 360 277 253 225 213 212 205 169 160 136 135
## 70 13 48 40 65
## 129 128 127 126 111
##
## $liczba_pokoi
## .
## 3 pokoje 2 pokoje <NA>
## 2788 2266 2248
## 4 pokoje 6 lub więcej pokoi Kawalerka lub garsoniera
## 816 475 391
## 5 pokoi
## 337
##
## $rodzaj_nieruchomosci
## .
## Mieszkanie Dom <NA> Inne
## 6619 1421 1056 225
##
## $preferowana_plec
## .
## <NA> Bez preferencji Kobieta Mężczyzna
## 3514 2735 2259 813
##
## $palacy
## .
## Nie <NA> Tak
## 4693 4079 549
##
## $przyjazne_zwierzakom
## .
## <NA> Nie Tak
## 4429 3854 1038
##
## $liczba_wyrazow
## .
## 45 19 31 44 29 59 36 47 91 22 43 25 35 53 64 26 42 23
## 104 101 95 92 89 88 86 86 84 83 83 82 82 82 82 81 80 79
## 33 37
## 79 79
Najwięcej ofert pochodzi z Krakowa i Warszawy (po około 2500). Dodatkowo stolica jako jedyne miasto ma rozróżnione lokalizacje ze względu na dzielnicę. Nie trudno domyślić się, że najdroższe pokoje do wynajęcia będą w największych miastach. Ponieważ znaczna większość ofert pochodzi z Warszawy i Krakowa, ograniczę się więc do tych dwóch miast. Na dalszym etapie można spróbowac przewidzieć czy oferta jest z dawnej czy z obecnej stolicy.
Sprawdźmy rozkład ilości słów w opisach.
hist(
pokoje$liczba_wyrazow,
50,
main = "Histogram liczby wyrazów w opisie oferty",
xlab = "Liczba wyrazów",
ylab = "Liczba ofert"
)
Nie trudno było się domyślić, że najczęściej występujące opisy będą krótkie.
Usunę oferty zawierające w cenie informację Proszę o kontakt oraz te z Wymiana/zamiana. Tak samo postąpię z ofertami, które nie dostarczają informacji o powierzchni wynajmowanej przestrzeni. Dla takich kolumn jak do_wynajęcia_przez, wspoldzielenie i liczba_pokoi w miejsce brakujących wartości wstawię "Nie podano", ponieważ ciężko w tych przpadkach doszukać się jakiegoś domyślnego ustawienia. Natomiast w przypadku rodzaj_nieruchomosci brak podanej wartości przypiszę do istniejącej opcji Inne. Kolejno preferowana_plec posiada wartość Bez preferencji i to ona zostanie przypisana w zamian za NA. Kierując się zasadą “Co nie jest prawem zabronione, jest dozwolone” założę, że nieokreślone wartości dla kolumn palacy oraz przyjazne_zwierzakom przyjmują wartości Tak. Na koniec cena zostaje pozbawiona informacji o walucie i zamieniona na liczbę typu Integer, a klasy odpowiednich zmiennych zostają zamienione na faktory.
pokoje <-
pokoje %>%
filter(
grepl(("Warszawa|Kraków"), lokalizacja),
!(cena %in% c("Proszę o kontakt", "Wymiana/zamiana")),
!is.na(wielkosc)
) %>%
mutate(
lokalizacja = lokalizacja %>%
stri_replace_first_regex(", Warszawa", "") %>%
as.factor(),
do_wynajecia_przez = do_wynajecia_przez %>%
plyr::mapvalues(NA, "Nie podano") %>%
as.factor(),
wspoldzielenie = wspoldzielenie %>%
plyr::mapvalues(NA, "Nie podano") %>%
as.factor(),
liczba_pokoi = liczba_pokoi %>%
plyr::mapvalues(NA, "Nie podano") %>%
as.factor(),
rodzaj_nieruchomosci = rodzaj_nieruchomosci %>%
plyr::mapvalues(NA, "Inne") %>%
as.factor(),
preferowana_plec = preferowana_plec %>%
plyr::mapvalues(NA, "Bez preferencji") %>%
as.factor(),
palacy = palacy %>%
plyr::mapvalues(NA, "Tak") %>%
as.factor(),
przyjazne_zwierzakom = przyjazne_zwierzakom %>%
plyr::mapvalues(NA, "Tak") %>%
as.factor(),
cena = stri_extract_all_regex(
cena, "[[:digit:]]"
) %>%
stri_join_list() %>%
as.integer()
)
pokoje %>% summary()
## lokalizacja opis cena
## Kraków, Małopolskie:1847 Length:3564 Min. : 1.0
## Śródmieście : 286 Class :character 1st Qu.: 550.0
## Mokotów : 246 Mode :character Median : 700.0
## Targówek : 156 Mean : 739.4
## Praga Południe : 153 3rd Qu.: 900.0
## Bielany : 148 Max. :8000.0
## (Other) : 728
## do_wynajecia_przez wspoldzielenie
## Agencja : 188 Nie podano : 207
## Nie podano: 186 Współdzielenie mieszkania/domu:2794
## Właściciel:3190 Współdzielenie pokoju : 563
##
##
##
##
## wielkosc liczba_pokoi rodzaj_nieruchomosci
## Min. : 1.00 2 pokoje : 929 Dom : 482
## 1st Qu.: 15.00 3 pokoje :1303 Inne : 216
## Median : 37.50 4 pokoje : 384 Mieszkanie:2866
## Mean : 44.52 5 pokoi : 141
## 3rd Qu.: 60.00 6 lub więcej pokoi : 198
## Max. :1200.00 Kawalerka lub garsoniera: 123
## Nie podano : 486
## preferowana_plec palacy przyjazne_zwierzakom liczba_wyrazow
## Bez preferencji:2319 Nie:1907 Nie:1709 Min. : 2.0
## Kobieta : 905 Tak:1657 Tak:1855 1st Qu.: 45.0
## Mężczyzna : 340 Median : 83.0
## Mean :106.1
## 3rd Qu.:140.0
## Max. :558.0
##
Stosując zasadę ograniczonego zaufania (wiele osób mogło pomylić się podczas wystawiania oferty) przyjrzyjmy się bliżej wartościom przyjmowanym przez cenę oraz wielkość. Po nich spodziewalibyśmy się dość silnej korelacji.
plot(cena~wielkosc, pokoje)
Wykres zdecydowanie psują pozycje z ceną powyżej 5000 złotych oraz powierzchnią powyżej 600 metrów kwadratowych. Przyjrzyjmy sie bliżej tym ofertom.
pokoje %>%
filter(cena == 8000) %>%
.$opis
## [1] "wynajmę duży pokój z balkonem. Zamykany, umeblowany. W mieszkaniu wszystkie potrzebne sprzęty: lodówka, pralka, kuchenka. Pozostałe pokoje zajęte przez osoby pracujące i studiujące także potrzeba osoby spokojnej i sympatycznej. koszty: osoba pojedyncza 800 + opłaty licznikowe para 1000 + opłaty licznikowe kaucja 650 zł. 601131276"
Z treści oferty wynika, że cena za jeden pokój dla osoby to 800 pln. Autor oferty dopisał jeden rząd wielkości do ceny. Przypatrzmy się tym od 3000 w górę.
pokoje %>%
filter(between(cena, 3000, 4000)) %>%
.$opis
## [1] "DWUPOZIOMOWE MIESZKANIE ODDALONE 3 KM OD CENTRUM KRAKOWA. W POBLIŻU ZNAJDUJĄ SIĘ MIN. PARK AWF, TAURON ARENA KRAKÓW, M1, PLAZA, POLITECHNIKA KRAKOWSKA.DOBRY DOJAZD ZARÓWNO DO CENTRUM KRAKOWA JAK I NOWEJ HUTY."
## [2] "Wynajme 2 pokojowe mieszanie na krotki okres (1-3miesiace)Mieszkanie (38m2) znajduje w centrum (Metro Rondo ONZ/Ul.Krochmalna 2). Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, lodowka, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za: 3000zl\r\ntel:7 95 689 328\r\nZapraszam\r\nShort term flat for rent in CITY CENTER (for 1-3months)2 Rooms flat has 38sq.m offered to the renter, the whole apartment is fully well firshished clean and nice Convenienient location on the 8th floor with elevator. Flat is in city center 7 minutes to Metro Rondo ONZ and to tram bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. PRICE: 3000zlNr tel:7 95 689 328"
## [3] "Wynajme 2 pokojowe mieszanie na krotki okres (1-3miesiace)Mieszkanie (38m2) znajduje w centrum (Metro Rondo ONZ/Ul.Krochmalna 2). Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, lodowka, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za: 3000zl\r\ntel:7 95 689 328\r\nZapraszam\r\nShort term flat for rent in CITY CENTER2 Rooms flat has 38sq.m offered to the renter, the whole apartment is fully well firshished clean and nice Convenienient location on the 8th floor with elevator. Flat is in city center 7 minutes to Metro Rondo ONZ/Ul.Krochmalna 2 and to tram bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. PRICE: 3000zlNr tel:7 95 689 328"
## [4] "Wynajmę dom nieumeblowany przy ul.Kasztanowej na Woli Justowskiej dla grupy studentów lub firmie dla pracowników do czerwca 2017 roku.Blisko do przystanku komunikacji autobusowej - 100 metrów, sklep 150 metrów.Kuchnia jest umeblowana, łazienki też umeblowane-pralka automatyczna też jest.Dom posiada wszystkie media - nadaje się do zamieszkania, czysty, ciepły.Miesięcznie 3500 zł. Kaucja 1 miesięczna. Media płaci najemca.Dom może zamieszkiwać kilkanaście osób dzieląc koszty najmu. Tel.663931805 lub przez formularz gumtree . Po podaniu nr telefonu - oddzwonię.Jestem właścicielem, nie ma prowizji.Dom jest w tej chwili niezamieszkały."
## [5] "Wynajmę pokoje dla osób starszych z opieką medyczną . Cena do uzgodnienia. KONTAKT - LIGKAC@WP.PL"
Powyższe przypadki opisują całe mieszkania (lub domy) do wynajęcia. Cena podana jest za mieszkanie/dom (sumę pokojów). W serwisie gumtree.pl istnieje osobny dział do wystawiania takich ofert o nazwie mieszkania i domy do wynajęcia. Sprawdźmy co dzieje się przy cenach między 2000 a 3000.
pokoje %>%
filter(between(cena, 2000, 3000)) %>%
.$opis
## [1] "Mam do wynajecia 2 przechodni pokoje do wynajecia w tym samym mieszkaniu w centrum (Metro Ratusz arsenal.Ul Anielewicza 4) Pokój jest12m który znajduje się w mieszkaniu 3 pokojowym w bloku dzielnica centrum. Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, telewizja kablowa, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za 1 pokoj:1000zl Caly pokoj 2000zl dla 2-3 osob\r\ntel:7 95 689 328\r\nZapraszam\r\nNICE Room for rent CITY CENTRE/UL.Anielewicza 4. Each of them 12sq.m offered to the renter, the whole apartment (55 sq m, 3rooms). Convenienient location on the 2nd floor.Flat is in city center 7 minutes to Metro Ratusz arsenal tram and bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. Whole Flat is fully furnished and without owner.PRICE For one room:1000zlWhole big room cost 2000zl for 2-3people.\r\n\r\nNr tel: 7 95 689 328"
## [2] "Mam do wynajecia duzy pokoj do wynajecia w centrum (Metro Ratusz Arsenal/Ul.Anielewicza 4) Pokój jest 26m który znajduje się w mieszkaniu 2 pokojowym w bloku dzielnica centrum. Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, telewizja kablowa, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.Caly pokoj 2000zl dla 2-3 osob\r\ntel:7 95 689 328\r\nZapraszam\r\nNICE BIG Room for rent CITY CENTRE/UL.Anielewicza 4. Room is 26sq.m offered to the renter, the whole apartment (55 sq m, 2rooms). Convenienient location on the 2nd floor.Flat is in city center 7 minutes to Metro Ratusz arsenal tram and bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. Whole Flat is fully furnished and without owner.Whole big room cost 2000zl for 2-3people.\r\nNr tel: 7 95 689 328"
## [3] "Mieszkanie na Żoliborzu, ul. Dymińska obok Cytadeli.2 pokoje, 1 piętro, blok z cegły.Mieszkanie czyste, ciche, słoneczne, umeblowane, kuchnia widna, osobna, Łazienka z kabiną prysznicową.BARDZO DOBRA LOKALIZACJA! Zielono, dużo miejsc spacerowych.Wymagana jednomiesięczna kaucja.Koszt najmu wynosi 2000 zł."
## [4] "Duzy Pokoj dla 1-2osob Od zarazPiekny pokoj do wynajecia W centrum (Metro Ratusz Arsenal/ul.Adersa24) Wynajme pokój 26m2 który znajduje się w 2 pokojowym mieszkaniu. Mieszkanie jest dobrym standardzie kompletnie wyposażone (pralka, zmywarka, sprzęt kuchenny, telewizja kablowa, etc.) Nie toleruje zwierząt w mieszkaniu oraz palenia papierosów .\r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za:2000zl \r\ntel:7 95 689 328\r\nZapraszam\r\nNICE Big Room for 1-2 person CITY CENTRE\r\nBeautiful, clean apartment. Room is 26sq.m offered to the renter, the whole apartment (56 sq m, 2rooms). Convenienient location on the 2nd floor with elevator.Flat is in city center 7 minutes to Metro(METRO RATUSZ ARSENAL/UL.ANDERSA24), tram and bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. Whole Flat is fully furnished and without owner.PRICE:2000zlAvaialble from now!"
## [5] "Duzy Pokoj dla 1-2osob Od zarazPiekny pokoj do wynajecia W centrum (Metro Ratusz Arsenal/ul.Adersa24) Wynajme pokój 26m2 który znajduje się w 2 pokojowym mieszkaniu. Mieszkanie jest dobrym standardzie kompletnie wyposażone (pralka, zmywarka, sprzęt kuchenny, telewizja kablowa, etc.) Nie toleruje zwierząt w mieszkaniu oraz palenia papierosów .\r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za:2000zl \r\ntel:7 95 689 328\r\nZapraszam\r\nNICE Big Room for 1-2 person CITY CENTRE\r\nBeautiful, clean apartment. Room is 26sq.m offered to the renter, the whole apartment (56 sq m, 2rooms). Convenienient location on the 2nd floor with elevator.Flat is in city center 7 minutes to Metro(METRO RATUSZ ARSENAL/UL.ANDERSA24), tram and bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. Whole Flat is fully furnished and without owner.PRICE:2000zlAvaialble from now!\r\n\r\nNr tel: 7 95 689 328"
## [6] "Dwa nieprzechodnie pokoje z dwoma podwójnymi łóżkami i widokiem na skwer. Oddzielna kuchnia i oddzielna łazienka. Mieszkanie usytułowane na Kazimierzu 10 minut od i Wisły.W pobliżu puby, restauracje i sklep całodobowy.Przystanek tramwajowy i autobusowy za rogiem.Mieszkanie jest w pełni wyposażone w lodówkę, pralkę, dwa podwójne łóżka itp.Nowe okna, ogrzewanie elektryczne.Cena 2000 zł + media(250)UMOWA NA 12 MIESIĘCYTwo separate bedroom apartment on Brzozowa street with view on square. Separate kitchen and bathroom. Located in Kazimierz District, 15 minutes walk to Man Square, Wisla Boulevard.In the area there are pubs, restaurants, 24h shops and nice cosy park. Tram and bus stop just around the corner.The apartment is fully equipped with fridge, washing machine, two double beds, etc.New windows, electric heating.Price 2000 pln + media(250)CONTRACT ON THE BASIS OF 12 MONTHS ONLY"
## [7] "Piekny Duzy Pokoj dla 1-2osob Od zarazPiekny pokoj do wynajecia W centrum (Metro Ratusz Arsenal/ul.Adersa24) Wynajme pokój 26m2 który znajduje się w 2 pokojowym mieszkaniu. Mieszkanie jest dobrym standardzie kompletnie wyposażone (pralka, zmywarka, sprzęt kuchenny, telewizja kablowa, etc.) Nie toleruje zwierząt w mieszkaniu oraz palenia papierosów .\r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za:2000zl \r\ntel:7 95 689 328\r\nZapraszam\r\nNICE Big Room for 1-2 person CITY CENTRE\r\nBeautiful, clean apartment. Room is 26sq.m offered to the renter, the whole apartment (56 sq m, 2rooms). Convenienient location on the 2nd floor with elevator.Flat is in city center 7 minutes to Metro(METRO RATUSZ ARSENAL/UL.ANDERSA24), tram and bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. Whole Flat is fully furnished and without owner.PRICE:2000zlAvaialble from now!\r\n\r\nNr tel: 7 95 689 328"
## [8] "Do wynajęcia duży, komfortowy pokój dla 2-3 osób w 3-pokojowym mieszkaniu w kamienicy ( I piętro ). Okolice mostu Dębnickiego.Wspólna łazienka, kuchnia ( z balkonem ) i przedpokój ( w pozostałych pokojach mieszkają 3 osoby).Pokój po remoncie. Nowe wyposażenie (meble): łóżka, biurka, fotele (na zdjęciach przed aranżacją )Cena wynajmu 2100 zł/mc + ok. 100 zł/mc media.Kaucja 2100 złOferta Biura Nieruchomościkontakt: 570 232 350 więcej ofert na naszej stronie:www.absolutnieruchomosci.plWszystkie szczegóły oferty podano na podstawie deklaracji lub dokumentacji przedstawionej przez właściciela. Oferta nie stanowi oferty handlowej w rozumieniu kodeksu cywilnego i nie jest wiążąca.Biuro pobiera prowizję w wysokości 1-miesięcznego czynszu.P-012"
## [9] "Mam do wynajecia duzy pokoj 26sq.m do wynajecia w centrum (Metro Ratusz Arsenal/Ul.Anielewicza 4) Pokój jest 26m który znajduje się w mieszkaniu 2 pokojowym w bloku dzielnica centrum. Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, telewizja kablowa, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.Cena pokoj 2000zl dla 2-3 osob\r\ntel:7 95 689 328\r\nZapraszam\r\nNICE BIG Room for rent CITY CENTRE/UL.Anielewicza 4. Room is 26sq.m offered to the renter, the whole apartment (55 sq m, 2rooms). Convenienient location on the 2nd floor.Flat is in city center 7 minutes to Metro Ratusz arsenal tram and bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. Whole Flat is fully furnished and without owner.Whole big room cost 2000zl for 2-3people.\r\nNr tel: 7 95 689 328"
## [10] "Do wynajęcia dwa mieszkania/kawalerki, znajdujące się obok siebie, na krótko lub dłużej, przytulne i funkcjonalne. W\r\nsamym centrum starego miasta (ul. Zyblikiewicza), w trzypiętrowej zadbanej\r\nkamienicy.Każde posada przestronny pokój dzienny\r\npołączony z sypialnią, aneks kuchenny i łazienkę. Świetne dla osób\r\nwynajmujących solo lub par. W pełni umeblowane, ciepłe, zadbane. Dodatkowym atutem\r\nkażdego jest posiadanie antresoli nadającej się na umiejscowienie na niej\r\nkącika do spania, czytania, odpoczywania, rozmyślania lub przechowywania rzeczy\r\ntypu: są niezbędne, ale tylko od czasu do czasu.\r\n\r\n\r\n\r\nPonadto cicha okolica, pełna gama programów\r\ntelewizyjnych w nowoczesnym telewizorze i wyposażenie aneksu kuchennego zachęca\r\ndo zamieszkania już od listopada."
## [11] "Wynajme duzy pokoj na krotki okres (1-3miesiace)Duzy samodzielny pokoj do wynajecia W centrum (Metro Ratusz arsenal/Ul.anielewicza 4) pokój jest 24m który znajduje się w mieszkaniu 2 pokojowym w bloku dzielnica centrum. Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, telewizja kablowa, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za: 2000zl \r\ntel:7 95 689 328\r\nZapraszam\r\nBig room rent for 1-3 months in CITY CENTER (Ul.anielewicza 4)Room has 24 sq.m offered to the renter, the whole apartment is fully well firshished clean and nice. (55 sq m, 2rooms). Convenient location on the 2nd floor. Flat is in city center 7 minutes to Metro Ratusz Arsenal, tram and bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. PRICE: 2000zl\r\nNr tel: 7 95 689 328"
## [12] "Wynajme 2 pokojowe mieszanie na krotki okres (1-3miesiace)Mieszkanie (38m2) znajduje w centrum (Metro Rondo ONZ/Ul.Krochmalna 2). Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, lodowka, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za: 3000zl\r\ntel:7 95 689 328\r\nZapraszam\r\nShort term flat for rent in CITY CENTER (for 1-3months)2 Rooms flat has 38sq.m offered to the renter, the whole apartment is fully well firshished clean and nice Convenienient location on the 8th floor with elevator. Flat is in city center 7 minutes to Metro Rondo ONZ and to tram bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. PRICE: 3000zlNr tel:7 95 689 328"
## [13] "Do wynajęcia od zaraz nowe mieszkanie urządzone w wysokim standardzie na strzeżonym zamkniętym osiedlu fi w krakowie przy ul. Szafrana 5Mieszkanie zlokalizowane jest na 2 piętrze - okna od strony zachodniej - dobrze doświetlone, jasne, przestronnePodłoga - deska lita olejowanaKuchnia - otwarta w pełni wyposażona - zmywarka, lodówka, zamrażalka, piekarnik, mikrofala, płyta indykcyjna, okap, zlew, pralka - wszystkie urządzenia nowe i o wysokim standardziePokój 1 - szafa wnękowa, wykonana na zamówienie, łóżko 2 - osobowePokój 2 - regały, sofa rozkładana 2 osobowaŁazienka - prysznic, umywalka nablatowa, duża szafka, toaletaOgrzewanie miejskie, w budynku nie ma gazuDo wynajęcia od zarazBezproblemowi właścicieleKoszt najmu 2000 zł + czynsz 315 zł + prąd (ok. 60 zł) nie ma dodatkowych opłatWymagana kaucja zwrotna w wysokości koszt najmuTel. 512 64 95 54 lub 501 503 064Proszę o kontakt tylko osoby prywatne bez pośrednictwa biur nieruchomości"
## [14] "PolskiWyjątkowy apartament dostępny na długi lub krótki okres od zaraz.2 pokoje niezależne: 18m2 i 12 m2. Mniejszy pokój z balkonem. Z większego pokoju piękny widok na zieleń. Czynsz: 1900 zł + rachunki (internet jest w cenie) lub 2600 zł all inclusiveBudynek położony jest 5 min pieszo do Galerii Kazimierz i do Wisły, 10 min pieszo zajmuje dojście na Rynek i Kazimierz.Mała Kaucja: takEnglishNice flat situated 3 min to the river, 10 min walk to the old town and the Jewish district available for both short periods. The flat has 2 independend rooms (12, 18 m2), bathroom and kitchen.The apartament has one of the greatest locatisation in town!Price per month: 1900 zloty + bills (wifi internet available), or 2600 zloty all inclusiveDeposit: yesYou can also contact me via whatsapp."
## [15] "Mam do wynajecia duzy pokoj 26sq.m do wynajecia w centrum (Metro Ratusz Arsenal/Ul.Anielewicza 4) Pokój jest 26m który znajduje się w mieszkaniu 2 pokojowym w bloku dzielnica centrum. Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, telewizja kablowa, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.Cena pokoj 2000zl dla 2-3 osob\r\ntel:7 95 689 328\r\nZapraszam\r\nNICE BIG Room for rent CITY CENTRE/UL.Anielewicza 4. Room is 26sq.m offered to the renter, the whole apartment (55 sq m, 2rooms). Convenienient location on the 2nd floor.Flat is in city center 7 minutes to Metro Ratusz arsenal tram and bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. Whole Flat is fully furnished and without owner.Whole big room cost 2000zl for 2-3people.\r\nNr tel: 7 95 689 328"
## [16] "Kawalerka na Mordorze ponownie do wynajęcia\r\n\r\nWynajmę bezpośrednio umeblowaną kawalerkę o \r\npowierzchni 28 m2 na Górnym Mokotowie, w pobliżu Galerii Mokotów, na \r\nparterze. Mieszkanie nowe, po całkowitym remoncie, atrakcyjne, jasne, z \r\nkuchnią otwartą i wyposażone (w tym pralka).\r\n\r\nBudynek zrewitalizowany, klatka schodowa w standardzie apartamentowca, z ochroną i wideodomofonem.\r\n \r\n2 przystanki od Galerii Mokotów w zacisznej i zielonej okolicy; w \r\npobliżu budynku - 150 m - przystanek autobusowy, przychodnia lekarska, gabinet weterynaryjny, bazarek z naturalnymi produktami, Top Market, apteki, banki, kompleks handlowo-rozrywkowy Galeria Mokotów (sklepy \r\nm.in. Carrefour, punkty usługowe, kina, kręgielnia itp.), Uniwersytet \r\nWarszawski Wydział Zarządzania.\r\n \r\nOkolica z terenami rekreacyjnymi, bardzo dobrze skomunikowana z pozostałymi dzielnicami, autobusy, tramwaje, metro (10 minut).\r\n\r\nCzynsz 2.500 zł/mc plus opłaty około 300zł. Wysokość dodatkowych opłat zależy od wybranej opcji pakietu TV/Internet. Kaucja 2.500zł.\r\n\r\nPośrednikom i osobom niezdecydowanym dziękujemy."
## [17] "Od 1 listopada możliwość wynajęcia dwoch pokoi w mieszkaniu na ul. Marchołta 53A. Mieszkanie w nowym budownictwie 3 pokojowe, 55m^2, na 2 piętrze, jest winda, podwyższony standard, ogrzewanie gazowe. W jednym pokoju mieszka sympatyczna studentka. Cicha i spokojna okolica, mieszkanie oddalone od drogi głównej. Do najbliższego przystanku jest 3 minuty. Przystanek: Marchołta.Mieszkanie jest w części umeblowane (tzn. kuchnia, łazienka i szafa na przedpokoju). Jeden pokój posiada osobny duży balkon z bardzo fajnym widokiem. Możliwość wynajęcia garażu podziemnego. \r\nMieszkanie jest dopiero przygotowywane do zamieszkania więc o zdjęcia proszę kontaktować się przez Facebooka (https://m.facebook.com/kamila.baniok?ref=bookmarks). Jeden pokój z balkonem jest przeznaczony dla dwóch osób, a drugi dla jednej osoby. Cena za calosc 2000 zł+media, wiec za osobę 500 zł + media."
## [18] "Do wynajęcia piękne, nowoczesne, nigdy nie zamieszkałe 2 pokojowe mieszkanie.Wszystko po remoncie !Nowoczesna w pełni wyposażona kuchnia w armaturę BOSH. Nowoczesna łazienka, sypialnia z łóżkiem i szafkami , oraz dużą szafą.W przedpokoju szafa na obuwie i okrycia wierzchnie.Idealna Lokalizacja ! - mieszkanie jest w monitorowanej , po remontach kamienicy z windą.100 metrów do stacji metra Racławicka ! 10 min do Centrum !W pobliżu pełna infrastruktura.Do mieszkania przynależy komórka. Możliwość parkowania auta na podwórku - dla mieszkańców - bezpłatnie ! Idealny apartamencik - Super lokalizacja ! Gorąco polecam.Kaucja- 2 miesiące czynszu, wszystko wliczone, najemca płaci opłaty licznikowe.Zainteresowanych proszę o kontakt mailowy - Dariusz"
## [19] "Wynajme 2 pokojowe mieszanie na krotki okres (1-3miesiace)Mieszkanie (38m2) znajduje w centrum (Metro Rondo ONZ/Ul.Krochmalna 2). Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, lodowka, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za: 3000zl\r\ntel:7 95 689 328\r\nZapraszam\r\nShort term flat for rent in CITY CENTER2 Rooms flat has 38sq.m offered to the renter, the whole apartment is fully well firshished clean and nice Convenienient location on the 8th floor with elevator. Flat is in city center 7 minutes to Metro Rondo ONZ/Ul.Krochmalna 2 and to tram bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. PRICE: 3000zlNr tel:7 95 689 328"
## [20] "Wynajme duzy pokoj na krotki okres (1-3miesiace)Duzy samodzielny pokoj do wynajecia W centrum (Metro Ratusz arsenal/Ul.anielewicza 4) pokój jest 24m który znajduje się w mieszkaniu 2 pokojowym w bloku dzielnica centrum. Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, telewizja kablowa, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za: 2000zl \r\ntel:7 95 689 328\r\nZapraszam\r\nBig room rent for 1-3 months in CITY CENTER (Ul.anielewicza 4)Room has 24 sq.m offered to the renter, the whole apartment is fully well firshished clean and nice. (55 sq m, 2rooms). Convenient location on the 2nd floor. Flat is in city center 7 minutes to Metro Ratusz Arsenal, tram and bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. PRICE: 2000zl\r\nNr tel: 7 95 689 328"
## [21] "Oferuję bez pośrednika do wynajęcia ciche mieszkanie obok\r\nstacji metra Wilanowska przy ulicy Puławskiej 233. Mieszkanie dopiero co\r\nurządzone w pełni wyposażone w sprzęt AGD, piekarnik, lodówka, pralka (6kg\r\nwsadu), . Dwie szafy: w przedpokoju i sypialni (lustrzane drzwi) oraz pojemna\r\nkomoda. Na podłodze wysokiej jakości i twardości panele bambusowe. Całe\r\nmieszkanie pomalowane farbą o dwóch odcieniach ciepłej jasnej żółci. W łazience\r\nkabina prysznicowa. Aneks kuchenny otwarty na pokój. Ciche, przytulne, nowocześnie urządzone mieszkanie z balkonem na 3 piętrze nowoczesnego budynku z\r\nwindami i ochroną. Mieszkanie mimo atrakcyjnej lokalizacji blisko stacji metra\r\n(piechotą 1, 5 min.) oraz wybudowania przy ulicy Puławskiej jest ciche gdyż okna\r\nwychodzą na drugą stronę na willową zabudowę, dodatkowo jest osłonięte przez\r\nsam budynek z 3 stron. Na parterze budynku od strony ulicy Puławskiej 2 banki\r\n(bankomaty) apteka, punkty gastronomiczne, obok sklepy samoobsługowe i\r\nsupermarket. Oferty od osób prywatnych lub firm na nr. tel. 509295881"
## [22] "Do wynajecia 2 pokojowe 54 m2 mieszkanie na ul. Pełczyńskiego 32Mieszkanie jest po odświeżeniu wolne od już .W cenie garaż pod budynkiem. Mieszkanie całkowicie umeblowane .Kuchnia ze zmywarką.w sypialni łóżko 160 x 200, szafa . W salonie narożnik , stół krzesła komoda , szafy wnękowe, telewizor.Na tarasie meble .WSZYSTKIE MEDIA W CENIE 2200 ZŁKontakt Anna 505-141-955,"
## [23] "Wynajmę dwupokojowe mieszkanie (53 m2) z loggią (10 m2). Do\r\ndyspozycji miejsce parkingowe w garażu podziemnym. Mieszkanie znajduje się na\r\npierwszym piętrze sześciopiętrowego bloku (rok 2006). Osiedle zamknięte, usytuowane tuż obok Fortów Bema. W okolicy Galeria Handlowa Bemowo i kino\r\nCinema City Bemowo. \r\nMieszkanie składa się z przestronnego pokoju z aneksem kuchennym, sypialni, łazienki z kabiną prysznicową i WC, garderoby oraz loggi z ładnym widokiem. W\r\nsalonie regał, telewizor, rozkładana kanapa, jasny kącik jadalniany ze stołem i\r\nkrzesłami, bar oddzielający aneks kuchenny. Kuchnia w pełni wyposażona:\r\nlodówka, kuchnia elektryczna, mikrofalówka, naczynia, garnki i patelnie.\r\nŁazienka z kabiną prysznicową i pralką. W sypialni znajduje się podwójne łóżko, biurko i komoda. Przedpokój i garderoba wyposażone w pojemne szafy wnękowe.\r\nMożliwość podłączenia internetu i sieci satelitarnej.\r\nW pobliżu zjazd na Trasę Toruńską. Dogodny dojazd do Metra Stare Bielany. Tuż\r\nobok dwa przystanki autobusowe (Hala Sportowa Bemowo - linie 197 i 397) i\r\nstacja rowerów Veturillo. Nieopodal pętla tramwajowa (linie 20, 23, 24)..W\r\nodległości 850 m przystanek Wrocławska -\r\nlinie 112, 167, 171, 184, E-2.\r\nW okolicy dwa sklepy spożywcze, restauracje , Targ Śniadaniowy. Na terenie\r\nFortów Bema bogato wyposażony plac zabaw, boiska, park linowy, Cafe Jutra, ścieżka rowerowa i dużo miejsca na spacery. Nieopodal Hala Sportowa Bemowo. Na\r\nosiedlu piekarnia, basen, dentysta, pralnia"
## [24] "BEZPOŚREDNIO OD WŁAŚCICIELA/ENGLISH BELOWMożliwość wynajęcia pokoju dwu lub trzyosobowego. Cena do negocjacji.Mieszkanie składa się z dwóch dużych pokoi (ok. 15 i 20m) dużej kuchni i łazienki, w pełni umeblowane. W pobliżu Galeria Kazimierz, Restauracje, sklepy. 10 minut na nogach na Kazimierz i 15 na rynek.Bardzo dobry punkt komunikacyjny: tramwaje: 50, 20, 19, 14, 12, 22 oraz autobusy. Blisko UEK i UJ.Na cenę składa się odstępne 2100 zł, 350zł czynszu, ok. 90-100 zł za prąd (płacone wg. zużycia) i ok 100-150 zł za gaz (również wg. zużycia).Więcej informacji pod nr telefonu: 793455301 lub mailowo na mateusz.pierzchala1@gmail.comFor rent: two bedroom apartment, with big kitchen, over 70sq meters in very good localization near Rondo Grzegórzeckie and Kazimierz district. Price: 2000 for owner + ~500zł media (depends on consumption of electrical energy and gas).For more information send an email on mateusz.pierzchala1@gmail.com"
## [25] "Piękny apartament z dwoma oddzielnymi pokojami, bardzo ciepłe, z remontem, niezależne ogrzewanie, duża kuchnia , wszystke meble i technika. Łączna powierzchnia 70m2. Przy domu znajduje się piękny park.W pobliżu znajduje się szkoła i przedszkola, jest miejsce dla samochodu."
## [26] "Do wynajęcia duży, komfortowy pokój dla 2-3 osób w 3-pokojowym mieszkaniu w kamienicy ( I piętro ). Okolice mostu Dębnickiego.Wspólna łazienka, kuchnia ( z balkonem ) i przedpokój ( w pozostałych pokojach mieszkają 3 osoby).Pokój po remoncie. Nowe wyposażenie (meble): łóżka, biurka, fotele (na zdjęciach przed aranżacją )Cena wynajmu 2100 zł/mc + ok. 100 zł/mc media.Kaucja 2100 złOferta Biura Nieruchomościkontakt: 570 - pokaż numer telefonu - więcej ofert na naszej stronie:www.absolutnieruchomosci.plWszystkie szczegóły oferty podano na podstawie deklaracji lub dokumentacji przedstawionej przez właściciela. Oferta nie stanowi oferty handlowej w rozumieniu kodeksu cywilnego i nie jest wiążąca.Biuro pobiera prowizję w wysokości 1-miesięcznego czynszu.P-012"
## [27] "Biuro Nieruchomości Zamieszkam.pl oferuje na wynajem jednopokojowe mieszkanie w Krakowie przy ul. Krakusa.Mieszkanie składa się z pokoju otwartego na kuchnie z jadalnią, sypialni oraz łazienki z toaletą. Lokal jest całkowicie wyposażony (kuchenka elektryczna, piekarnik, lodówka, pralka, prysznic) oraz w pełni umeblowany.BARDZO ATRAKCYJNA LOKALIZACJA!!!Mieszkanie zlokalizowane jest na Starym Mieście, blisko na Wawel, Kazimierz, do Rynku Głównego. Łatwy dojazd do każdej części Krakowa. W okolicy mnóstwo sklepów, szkół, żłobków, placówek medycznych, a także Centrum Kongresowe ICE.Cena za wynajem 2100 złotych + czynsz do administracji ok. 400 złotych + prąd według zużycia. W mieszkaniu nie ma gazu (tylko energia elektryczna). Kaucja wynosi 3000 zł.Zapraszam już dziś na prezentację!Kontakt w sprawie oferty: Joanna Siuta 530 531 521.Zobacz więcej ofert w biurze nieruchomości Zamieszkam.plOgłoszenie nie stanowi oferty w rozumieniu KC."
## [28] "Do wynajęcia duży, komfortowy pokój dla 2-3 osób w 3-pokojowym mieszkaniu w kamienicy ( I piętro ). Okolice mostu Dębnickiego.Wspólna łazienka, kuchnia ( z balkonem ) i przedpokój ( w pozostałych pokojach mieszkają 3 osoby).Pokój po remoncie. Nowe wyposażenie (meble): łóżka, biurka, fotele (na zdjęciach przed aranżacją )Cena wynajmu 2100 zł/mc + ok. 100 zł/mc media.Kaucja 2100 złOferta Biura Nieruchomościkontakt: 570 - pokaż numer telefonu - więcej ofert na naszej stronie:www.absolutnieruchomosci.plWszystkie szczegóły oferty podano na podstawie deklaracji lub dokumentacji przedstawionej przez właściciela. Oferta nie stanowi oferty handlowej w rozumieniu kodeksu cywilnego i nie jest wiążąca.Biuro pobiera prowizję w wysokości 1-miesięcznego czynszu.P-012"
## [29] "Do wynajęcia duży, komfortowy pokój dla 2-3 osób w 3-pokojowym mieszkaniu w kamienicy ( I piętro ). Okolice mostu Dębnickiego.Wspólna łazienka, kuchnia ( z balkonem ) i przedpokój ( w pozostałych pokojach mieszkają 3 osoby).Pokój po remoncie. Nowe wyposażenie (meble): łóżka, biurka, fotele (na zdjęciach przed aranżacją )Cena wynajmu 2100 zł/mc + ok. 100 zł/mc media.Kaucja 2100 złOferta Biura Nieruchomościkontakt: 570 - pokaż numer telefonu - więcej ofert na naszej stronie:www.absolutnieruchomosci.plWszystkie szczegóły oferty podano na podstawie deklaracji lub dokumentacji przedstawionej przez właściciela. Oferta nie stanowi oferty handlowej w rozumieniu kodeksu cywilnego i nie jest wiążąca.Biuro pobiera prowizję w wysokości 1-miesięcznego czynszu.P-012"
## [30] "Do wynajęcia duży, komfortowy pokój dla 2-3 osób w 3-pokojowym mieszkaniu w kamienicy ( I piętro ). Okolice mostu Dębnickiego.Wspólna łazienka, kuchnia ( z balkonem ) i przedpokój ( w pozostałych pokojach mieszkają 3 osoby).Pokój po remoncie. Nowe wyposażenie (meble): łóżka, biurka, fotele (na zdjęciach przed aranżacją )Cena wynajmu 2100 zł/mc + ok. 100 zł/mc media.Kaucja 2100 złOferta Biura Nieruchomościkontakt: 601 488 083, 570 232 350więcej ofert na naszej stronie:www.absolutnieruchomosci.plWszystkie szczegóły oferty podano na podstawie deklaracji lub dokumentacji przedstawionej przez właściciela. Oferta nie stanowi oferty handlowej w rozumieniu kodeksu cywilnego i nie jest wiążąca.Biuro pobiera prowizję w wysokości 1-miesięcznego czynszu.P-012"
## [31] "Do wynajęcia duży, komfortowy pokój dla 2-3 osób w 3-pokojowym mieszkaniu w kamienicy ( I piętro ). Okolice mostu Dębnickiego.Wspólna łazienka, kuchnia ( z balkonem ) i przedpokój ( w pozostałych pokojach mieszkają 3 osoby).Pokój po remoncie. Nowe wyposażenie (meble): łóżka, biurka, fotele (na zdjęciach przed aranżacją )Cena wynajmu 2100 zł/mc + ok. 100 zł/mc media.Kaucja 2100 złOferta Biura Nieruchomościkontakt: 601 488 083, 570 232 350więcej ofert na naszej stronie:www.absolutnieruchomosci.plWszystkie szczegóły oferty podano na podstawie deklaracji lub dokumentacji przedstawionej przez właściciela. Oferta nie stanowi oferty handlowej w rozumieniu kodeksu cywilnego i nie jest wiążąca.Biuro pobiera prowizję w wysokości 1-miesięcznego czynszu.P-012"
## [32] "Do wynajęcia duży, komfortowy pokój dla 2-3 osób w 3-pokojowym mieszkaniu w kamienicy ( I piętro ). Okolice mostu Dębnickiego.Wspólna łazienka, kuchnia ( z balkonem ) i przedpokój ( w pozostałych pokojach mieszkają 3 osoby).Pokój po remoncie. Nowe wyposażenie (meble): łóżka, biurka, fotele (na zdjęciach przed aranżacją )Cena wynajmu 2100 zł/mc + ok. 100 zł/mc media.Kaucja 2100 złOferta Biura Nieruchomościkontakt: 601 488 083, 570 232 350więcej ofert na naszej stronie:www.absolutnieruchomosci.plWszystkie szczegóły oferty podano na podstawie deklaracji lub dokumentacji przedstawionej przez właściciela. Oferta nie stanowi oferty handlowej w rozumieniu kodeksu cywilnego i nie jest wiążąca.Biuro pobiera prowizję w wysokości 1-miesięcznego czynszu.P-012"
## [33] "Od 1 listopada możliwość wynajęcia pokoju dwuosobowego w mieszkaniu na ul. Marchołta 53A. Mieszkanie w nowym budownictwie 3 pokojowe, 55m^2, na 2 piętrze, jest winda, podwyższony standard, ogrzewanie gazowe. W jednym jak i druhim pokoju mieszkaja sympatyczne studentki. Cicha i spokojna okolica, mieszkanie oddalone od drogi głównej. Do najbliższego przystanku jest 3 minuty. Przystanek: Marchołta.Mieszkanie jest w części umeblowane (tzn. kuchnia, łazienka i szafa na przedpokoju). Pokój posiada osobny balkon z fajnym widokiem. Możliwość wynajęcia garażu podziemnego. \r\nMieszkanie jest dopiero przygotowywane do zamieszkania więc o zdjęcia proszę kontaktować się przez Facebooka (https://m.facebook.com/kamila.baniok?ref=bookmarks). Cena za calosc 2000 zł+media, wiec za osobę 500 zł + media."
## [34] "Do wynajęcia piękne, nowoczesne, nigdy nie zamieszkałe 2 pokojowe mieszkanie.Wszystko po remoncie !Nowoczesna w pełni wyposażona kuchnia w armaturę BOSH. Nowoczesna łazienka, sypialnia z łóżkiem i szafkami , oraz dużą szafą.W przedpokoju szafa na obuwie i okrycia wierzchnie.Idealna Lokalizacja ! - mieszkanie jest w monitorowanej , po remontach kamienicy z windą.100 metrów do stacji metra Racławicka ! 10 min do Centrum !W pobliżu pełna infrastruktura.Do mieszkania przynależy komórka. Możliwość parkowania auta na podwórku - dla mieszkańców - bezpłatnie ! Idealny apartamencik - Super lokalizacja ! Gorąco polecam.Kaucja- 2 miesiące czynszu, wszystko wliczone, najemca płaci opłaty licznikowe.Zainteresowanych proszę o kontakt mailowy - Dariusz"
## [35] "DWUPPOKOJOWE, SŁONECZNE MIESZKANIE NA SASKIEJ KĘPIE PRZY UL. NUBIJSKADoskonałe połączenie komunikacyjne z całym miastem ze względu na pobliską infrastrukturę. Dojazd do Centrum zajmuje 15 minut. Bardzo dobre połączenie z Metrem Politechnika oraz Uczelniami .Łatwy dostęp do atrakcji pobliskiej Saskiej Kępy, sławna ulica Francuska wypełniona po brzegi kawiarniami i restauracjami, Stadion Narodowy na których poza meczami , odbywają się koncerty oraz inne atrakcyjne eventy :-). W pobliżu „Park Skaryszewski” oraz kawiarenki „Przy Balatonie”, gdzie można udać się na spacer :-). Na osiedlu znajduje się również „Targ” , gdzie można zakupić świeże produkty spożywcze oraz Biedronka dla fanów tanich i szybkich zakupów :-) dostępna do 22:00 :-)Mieszkanie Położone na 3 piętrze w 4 piętrowym bloku . Bez sąsiadów za oknami, z otwartym widokiem na osiedlową zieleń. Idealnie ciche, nawet przy otwartych oknach :-) Wnętrze na zdjęciach nie zawiera wszystkich dostępnych mebli, między innymi w mniejszym pokoju znajduje się dwuosobowe sypialniane łóżko. Na życzenie wynajmujących możliwość doposażenia w biurko, ławę, czy stolik kawowy.Rozkład idealny dla 2- 3 osób– pokój dzienny z „pakowną” meblościanką :-) z wyjściem na przytulny balkonik. Sypialnia posiada szafę wnękową, doposażenie wg powyższych możliwości do uzgodnienia. Łazienka z wanną i dopasowaną ilością szafek. Przedpokój z szafą wnękową oraz bardzo dużym lustrem. Niezbędny sprzęt AGD pozostaje do dyspozycji wynajmujących: lodówka, pralka, piekarnik odkurzacz, żelazko, czajnik elektryczny :-). Całość robi wrażenie większego niż jest w rzeczywistości. Miejsce postojowe pod blokiem zawsze dostępne :-), ale istnieje również możliwość pozostawienia auta na strzeżonym parkingu tuż obok bloku. Media płatne dodatkowo wg liczników, możliwość pozostawienia do dyspozycji Internetu."
## [36] "Do wynajęcia\r\n mieszkanie 47 m2 przy Al.\r\nJana Pawła II 61A\r\n\r\n \r\n\r\nMieszkanie\r\nskłada się z:\r\n\r\n· \r\ndwóch niezależnych pokoi , · \r\nŁazienki wyposażonej w kabinę prysznicową , · \r\nwidnej, oddzielnej kuchni ( w kuchni znajduje\r\nsię nowa, lodówko-zamrażarka, kuchenka mikrofalowa, kuchnia gazowa i zabudowana\r\npralka).\r\n\r\nMieszkanie\r\nzlokalizowane jest na czwartym piętrze w dziesięciopiętrowym budynku. \r\n\r\nŚródmieście, ale cisza, spokój , dużo zieleni. W okolicy pełna infrastruktura- sklepy, szkoły\r\n, dogodna komunikacja w każdą stronę miasta (do Arkadii 5 min. na piechotę). Mieszkanie wyposażone w\r\nnowe meble i nowy sprzęt AGD ( odkurzacz, żelazko, deska do prasowania, mikrofala, wyposażona kuchnia).\r\n\r\nCzynsz 2500\r\nzł. + media ( woda, gaz, prąd -według wskazań liczników).\r\n\r\nKaucja -\r\njednomiesięczny czynsz.\r\n\r\nTelefon\r\nkontaktowy 883009999, 696570359."
## [37] "Wynajme duzy pokoj na krotki okres (1-3miesiace)Duzy samodzielny pokoj do wynajecia W centrum (Metro Ratusz arsenal/Ul.anielewicza 4) pokój jest 24m który znajduje się w mieszkaniu 2 pokojowym w bloku dzielnica centrum. Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, telewizja kablowa, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za: 2000zl \r\ntel:7 95 689 328\r\nZapraszam\r\nBig room rent for 1-3 months in CITY CENTER (Ul.anielewicza 4)Room has 24 sq.m offered to the renter, the whole apartment is fully well firshished clean and nice. (55 sq m, 2rooms). Convenient location on the 2nd floor. Flat is in city center 7 minutes to Metro Ratusz Arsenal, tram and bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. PRICE: 2000zl\r\nNr tel: 7 95 689 328"
Tym razem cena części ofert faktycznie dotyczy jednego pokoju do wynajęcia w dwópokojowym mieszkaniu w pobliżu stacji Metro Ratusz Arsenał. Niestety podany metraż dotyczy całego mieszkania.
Przyjrzyjmy się teraz skrajnym wielkościom.
pokoje %>%
filter(wielkosc >= 1000) %>%
.$opis
## [1] "2 Piekni przechodni pokoje do wynajecia W centrum (Metro Ratusz arsenal/Ul.andersa 24) Kazdy pokój ma 14m który znajduje się w mieszkaniu 3 pokojowym w bloku dzielnica centrum. Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, telewizja kablowa, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za 1 pokoj :1000zl \r\ntel:7 95 689 328\r\nZapraszam\r\nLovely Interconnecting 2 Rooms for rent in CITY CENTER. Each rooms has 14sq.m offered to the renter, the whole apartment (55 sq m, 3rooms). Convenienient location on the 2nd floor with elevator.Flat is in city center 7 minutes to Metro Ratusz Arsenal/Ul.andersa 24 tram and bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. Whole Flat is fully furnished and without owner.PRICE For 1 room: 1000zl\r\nAvailable from now!Nr tel: 7 95 689 328"
## [2] "Wynajme pokoje na krotki okres (1-3miesiace)Piekni pokoje do wynajecia W centrum (Metro Ratusz arsenal/Ul.andersa 24) pokóje sa 14m który znajduje się w mieszkaniu 3 pokojowym w bloku dzielnica centrum. Mieszkanie jest kompletnie wyposażone (pralka, sprzęt kuchenny, zmywarka, telewizja kablowa, etc.) \r\nLokalizacja : W centrum, w pobliżu przystanku autobusowy/tramwajowa i metra.\r\nWynajem za 1 pokoj: 1200zl \r\ntel:7 95 689 328\r\nZapraszam\r\nShort term rooms for rent in CITY CENTERLovely Interconnecting 2 Rooms for rent in CITY CENTER. Rooms has 14sq.m offered to the renter, the whole apartment is fully well firshished clean and nice. (55 sq m, 3rooms). Convenienient location on the 2nd floor with elevator. Flat is in city center 7 minutes to Metro Ratusz Arsenal/Ul.andersa 24 tram and bus stops. Perfect location close to everywhere and safe area. Under the flat is supermarkets, pharmacies, restaurants and bars. PRICE for 1 room: 1200zl\r\nAvailable from now!Nr tel: 7 95 689 328"
Ciekawe, że dwie najbardziej skrajne oferty pod względem wielkości to kopie najbardziej skranych ofert pod względem ceny. Oczywiście zawierają one błąd i zostaną usunięte. Sprawdźmy co z nieco mniejszymi.
pokoje %>%
filter(between(wielkosc, 200, 600)) %>%
.$opis
## [1] "Hostel z przeznaczeniem dla pracowników i grup zorganizowanych. Bardzo dobre warunki w doskonałej lokalizacji za przyzwoitą cenę.Pokoje 4-, 6- i 8-osobowe. Także jeden pokój 2-osobowy W każdym pokoju internet WiFi oraz telewizorŁazienki z nowymi prysznicami. Kuchnia w pełni wyposażona (lodówki, kuchenka, mikrofala, garnki, talerze i inne sprzęty. Pralka, żelazko. Osobna jadalnia z telewizją.Miejsce parkingowe. Cena za osobę w pokoju wieloosobowym:- przy pobycie miesięcznym: 15, 00 zł - 16, 50 zł - 18, 00 zł za dzień (450 zł - 500 zł - 550 zł za miesiąc).- przy pobycie tygodniowym: 21 zł - 26 zł za za dzień (150 zł - 180 zł za tydzień)- przy pobycie 1-6 dni: 25 zł - 35 zł za dzieńCena za cały pokój 2-osobowy:- 90 zł za pokój /dzieńDojazd licznymi tramwajami, autobusami oraz metrem. Metro Wilanowska. Przystanki tramwajowe: Wilanowska lub Niedźwiedzia. Adres: Ul. Świeradowska 49, Mokotów, Warszawa Metro Wilanowska Tel: 602227711Аркадия\" – это гостевой хостел, в 6-ми минутах ходьбы от станции метро «Wilanowska», с очень удобной транспортной развязкой: метро-автобус-трамвай.Дом после капитального ремонта. Предлагаем: качественные номера с 2-4-6-8 местным размещением. Варианты улучшенного и бюджетного проживания. Отдельные комнаты для женщин и мужчин, а также комфортные комнаты для пар и семей с детьми.Работаем 24 часа в сутки.Предлагаем:• Кухня (новое оборудование, микроволновка, электроплита, холодильник, посуда и т.д. ), • Отдельная столовая, • Новые душевые кабины и туалеты, • Бесплатный интернет WiFi , • Комната для стирки и сушки белья, • Утюг и доска для глажки, • Паркинг, • Место на гриль.Для наших клиентов оказываем консультации по вопросам трудоустройства , ВНЖ и ПМЖ в Польше, Иммиграции, выезду семей с детьми в Польшу.Цены на человека за: • 25 zł - 35 zł за сутки• 150 zł - 180 zł за неделю• 450 zł - 500 zł - 550 zł за месяц Хостел располагается в спокойном и безопасном районе. Возле нас располагаются продовольственные магазины, ТЦ «Galeria Mokotów», рестораны, аптеки, почта и тд.Как к нам доехать:метро Вилановска (Wilanowska) Tрамваи: 4, 10, 14, 18, 31, 35 Aвтобусы: 108, 139, 165, 174, 189, 192, 193, 217, 218, 300, 317, 319, 331, 365, 401, 700, 709, 710, 727, 739Ночные автобусы: N01, N33, N37, N50 Hostel Arkadia ul. Świeradowska 49 02-622 Warszawa (Mokotów)602-22-77-11"
## [2] "Warsawa Targówek ul. Oszmiańska 7 okilce Ronda ŻabaOferujemy pokoje 2, 3, 4 osobowe w hotelu pracowniczym .Pokoje umeblowane , TV , lodówka , internet , czyste i ciepłe . Do dyspozycji kuchnia wyposażona w naczynia i niezbędny sprzęt AGD do gotowania. Dwa węzły sanitarne z WC , umywalkami , natryskami oraz pralką. Teren ogrodzony do dyspozycji duży parking strzezony bezpłatny .5 min. do sklepów ( Biedronka , Tesco 24h ) dogodne połączenie siecią autobusową i tramwajową z innymi dzielnicami miasta.CENNIKpojedyncza doba 40zł każda następna 20złtydzień od pn do pi 100zł.tydzień od pn do nd 120złmiesiąc 400zł"
## [3] "Noclegi. Pokoje dla Pracowników. Kwatery dla firm.Pokoje 2, 3, 4, 5, 6, 7 osobowe.Obiekt sprzątany codziennie. WiFi, parking za darmo.Ceny pojedyncza doba - 35 zl. tydzień - 150 zl. miesiąc - 550 zl. od osoby.Zapraszamy: 575 537 419"
## [4] "Praca szuka człowieka. 1300zl + pokój na osobnym piętrze. Pierwszy miesiąc próbny 1000zł. Pokój znajduje się na piętrze, gdzie kiedyś był garaż i piwnice, obecnie znajduje się pokój z przeszkloną całą ścianą, wyjściem na małe patio, z którego jest wyjscie na małą uliczkę (osloniete od ulicy), jest tez lazienka i osobno toaleta. Dom jednorodzinny, 3 min pieszo od stacji metra Wierzbno. Opieka nad dzieckiem, pomoc w prowadzeniu domu, opieka nad psem. Dziecko 4 lata (opieka na pół etatu - godziny popołudniowe, ewentualne nadgodziny nieobowiązkowe i płatne dodatkowo). Sprzątanie + opieka nad psami 1-2 h dziennie (głównie odkurzanie - co drugi dzień i pranie), od czasu do czasu pomoc w gotowaniu, pomoc w spacerach z psami (2 starsze psiaki). W domu jest też kot, ale opieka nad nim nie nalezy do obowiazków. Powyższe obowiązki to warunki dla zarobku 1300zł. Mozliwa dodatkowa praca przy sprzątaniu lub prowadzeniu zajęć dla dzieci (pracuję jako nauczycielka języków obcych, organizuję zajęcia dla dzieci oraz spotkania i warsztaty kulinarne dla dzieci i dorosłych). Wymiar pracy może być rozszerzony lub zmniejszony oraz zmodyfikowany, jednak praca tylko z zamieszkaniem.Dziecko jest wychowywane w duchu rodzicielstwa bliskości, bardzo ważny jest szacunek dla potrzeb dziecka, ale i uczenie dziecka szacunku dla innych. Jest bardzo samodzielne, wyluzowane i kontaktowe :) W domu nie jemy mięsa ani produktow wysokoprzetworzonych. Poszukuję osób z otwartą głową, elastycznych (pogodzenie tej pracy ze studiami lub inną pracą dodatkową jest jak najbardziej możliwe), uczciwych i solidnych. Ze swojej strony gwarantuję m.in uczciwość, elastyczność, miłą atmosferę, poszanowanie prywatności, ciekawe możliwości oraz wszelkiego rodzaju pomoc :) Praca jedynie z opcją zamieszkania. Ewentualnie mogę wziąć pod uwagę osoby, które mieszkają blisko stacji metra Wierzbno do dodatkowej, sporadycznej pomocy.Osoby zainteresowane pracą proszę o kontakt mailowyPokój może być dowolnie urządzony, wg gustu :) Zdjęcia sa sprzed remontu, nie ma obecnie tej starej kanapy na tarasiku. sa nowe zaslonki.Wymagana kaucja 800złPokój od 15 pazdziernika!"
## [5] "noclegi 16, 5 Zl\r\nW\r\nnowym, estetycznym, nowoczesnym hostelu oferują łóżka.Pokoje\r\ndla 4 i 6 osób.Zapraszamy\r\ngości miasta, podróżujących w interesach, jak i studentów.\r\nOddzielne pokoje męskie i żeńskie.Miesiąc\r\n= 495 złtydzień\r\n= 149 zł.dzień\r\n= 24, 9 zł.Oferujemy\r\nrównież prywatne pokoje dla 2 - 4 osób.= od 90 zł.Предлагаем\r\nместа в новом, эстетичном, современном\r\nхостеле.Номера\r\nдля 4 и 6 человек.Мы\r\nприветствуем гостей города, деловых\r\nпутешественников и студентов. Отдельные\r\nмужские и женские номера.Месяц\r\n= 495 złнеделя\r\n= 149 злотых.сутки\r\n= 24, 9 злотых.Мы\r\nтакже предлагаем отдельные номера для\r\n2 -. 4-х человек = от 90 злотых."
## [6] "Noclegi:miejscowość Łazy, Gmina Jerzmanowice okolice Ojcowa- Do Dyspozycji gości:- 1 pok 2 os. łazienką- 2 pok. 2 os z możliwością dostawki- 2 pok 3 os.z możliwością dostawki+ 2 duże łazienki i 2 osobne WC + aneks kuchenny z naczyniami, kuchenka mikrofalowaZAPRASZAMY! :) SZCZEGÓŁY pod nr 12 3895 392, 506 277 466 DOM JEST DO SPRZEDANIA!!"
## [7] "ZAMYKANY NA KLUCZ, , W OSOBNEJ CZĘŚCI DOMU, UMEBLOWANY W PEŁNI, POZOSTAŁE POKOJE WEJŚCIE Z INNEJ STRONY OD KORYTARZA, OBOK KUCHNIA I ŁAZIENKA, DOJAZD NA pk, DWORZEC LINIĄ 105, AGH 139, UEK 184 SZYBKO W 10 - 15 MINUT, DOBRU W 10 MIN. DOJAZD DO GALERII KRAKOWSKIEJ, 3 PRZYSTANKI, MULTIKUNO, REAL, PARK WODNY, 2 MIN. BANK, SKLEPY, PRZYSTANKI, APTEKAMŁODYM ( NIE DLA PAR) OD ZARAZCZYNSZ W 1- OSOB. 650 ZŁ PLUS MEDIA WG LICZNIKA OK. 200- 300ZŁ MAKS. ZIMĄ LUB MNIEJ W ZALEŻNOŚCI OD CZASU PRZEBYWANIAW 2- OSOB. 400 ZŁ OD OSOBY PLUS MEDIA OK. 140 ZŁ ( PRZY DWÓCH), LICZONE WG LICZNIKÓWKAUCJA ZWROTNA OBOWIĄZUJE, NOWA PRALKA !!TEL. 694 344 594"
## [8] "W przypadku pytań i rezerwacji prosimy o kontakt telefoniczny: 530 033 423 .OFERTADo dyspozycji gości mamy pokoje 1/2/3/4 osobowe z TV.W hostelu jest darmowe wifi.LOKALIZACJAMieścimy się w budynku zlokalizowanym w willowej części Warszawy. Ulica przy której się znajdujemy jest bardzo cicha, a w niedalekiej odległości znajduje się przystanek autobusowy oraz stacja kolejki podmiejskiej. Z obu miejsc w niecałe 30 minut dojedziesz do centrum miasta.OKOLICABar garmażeryjny - 50 mSklep spożywczy – 400 mRestauracja – 100 mBankomat - 400 mDla nas najważniejsza jest dobra atmosfera. Dbamy o to, aby każdy się u nas czuł komfortowo. W naszym hostelu panuje kameralna atmosfera, cisza, dbamy o to, by goście mogli w spokoju wypocząć.www.wawahostel.pl"
## [9] "Dom jest 13 kilometrów na południowy zachód od Krakowa.Okolice Włosania Gmina Mogilany.Powiat Kraków.Cena za dobę od 8 do 20 złotych za Osobę.Koszt zależy od ilości Osób, długości najmu oraz liczby zajętych pokoi.Możliwość rozliczenia części należności za najem w pracach remontowo-wykończeniowych typu szpachlowanie, malowanie, instalacje wod -kan, kładzenie glazury i terakoty itpStandard nie jest wysoki ale jakieś minimum typu ciepła woda, toaleta, internet, kuchenka, lodówka są."
## [10] "Witam, Zapraszam do wynajęcia jednego z naszych pokoi. Do wynajęcia mamy 1 pokój jednoosobowy. Dostępny od zaraz. Mieszkanie w bardzo atrakcyjnej lokalizacji blisko metra Kabaty. Mieszkanie składa się z 14 nieprzechodnich pokoi, ogólnodostępnej kuchni, 3 niezależnych łazienek. Wysoki standard. W przedpokoju ogólnodostępna szafa. W mieszkaniu dostępny szybki internet.Cena: 950 zł miesięcznie plus 150 zl (opłata za media). Kaucja: 1000 zł. (Dla obcokrajowców kaucja wynosi 2000 zł.)Zapraszam do oglądania.Svetlana: 514-322-795."
## [11] "Wynajmę pokoje w unikatowym modernistycznym domu wielorodzinnym z 1937 roku na Starych Dębnikach przy ul. Czarodziejskiej.Czynsz za łóżko w pokoju 2/3 osobowym to 400zł + 50 zł ryczałt za media. Pokoje są wyposażone, ogrzewane i zamykane na klucz. Istnieje również możliwość wynajęcia samodzielnych pokojów - do uzgodnienia na miejscu. Kaucja wynosi jednomiesięczny czynsz. Dom posiada trzy piętra, dwie łazienki i dwie w pełni wyposażone kuchnie, oraz część wspólną na parterze, gdzie znajduje się rzutnik i głośniki. Podłogi są drewniane i każdy pokój ma co najmniej jedno podwójne okno, oraz wyjście na balkon. W budynku znajduje się pralka. Szybkie WiFi w cenie. Świetnie nadaje się dla artystów i freelancerów. Możliwość adaptacji pokojów z wykuszem na pracownię - naturalne światło w pokoju jest prawie od świtu do zmierzchu. Komunikacja: przystanek autobusowy \"Zielińskiego\" w odległości 3 minut piechotą, na tramwaj \"Kapelanka\" 5 minut. III Kampus UJ bardzo blisko. Centrum i Kazimierz 15 minut spacerem. Kontakt przez komórkę +48 882 492 522 lub e-mail na krystian (kropka) derezinski (małpa) gmail (kropka) com *** Rooms for rent in an unique 1937 modernist house located at Czarodziejska street in Dębniki district. Rent for one bed in room for 2/3 person cost 400 PLN monthly + 50 PLN for media. Rooms are equipped, heated and can be locked. There is also possibilty of renting private room - details would be provided on site. Deposit is 100% of monthly rent.House have three floors, two bathrooms, two fully equipped kitchens and common space with projector and hifi. Floors are wooden and rooms are very bright with access to balcony. There is one wasching machine. Fast WiFi for free.Suitable for artists and freelancers. There is possibility of adaptation of one room for painters/sculptor’s workshop - there is very good light.Public transport: bus stop “Zielińskiego” in distance of 3 minutes walking, tram stop “Kapelanka” 5 minutes. Jagiellonian University’s III Campus very close. Old Town and Kazimierz 15 minutes by walking.You can contact us via phone +48 882 492 522 or e-mail at krystian (dot) derezinski (at) gmail (dot) com"
## [12] "pokoj w domu jednorodzinnym 15m umeblowany mozliwosc parkowania auta pod domem w pelni umeblowany"
## [13] "Zapraszamy do naszych kwater pracowniczych , polozonej blisko skrzyżowania MŁODZIEŃCZA -RADZYMIŃSKA .\r\nOferujemy pokoje trzy oraz pięcio osobowe.\r\nPokoje są wyposarzone w :\r\n- Łóżka \r\n- Pościel\r\n- Telewizory\r\n- Szafy\r\n- Stoliki\r\nDo wspólnego wykorzystania:\r\n- Kuchnia (lodówka, mikrofalówka, kuchenka gazowa \r\n- Darmowy dostęp do sieci Wi-Fi\r\n- Pralnia\r\n- Darmowy parking\r\n- Miejsce na grill-a\r\n(Obiekt Monitorowany)\r\n\r\nCena za :\r\n- Doba 16\r\n- Miesiąc 500\r\nCeny roznia sie w zaleznosci od dlugosci pobytu od 16 zl do 30 pln \r\nKaucja za kluczyk 50 pln , kaucja jest zwrotna"
## [14] "KAWALERSKIE, WIECZÓR PANIEŃSKI, W LESIE NAD RZEKĄ. IMPREZY DLA GRUPY PRZYJACIÓŁ- POKOJE 2, 3, 4 OSOBOWE- KUCHNIA Z PEŁNYM WYPOSAŻENIEM AGD-SALA Z KOMINKIEM NA DRZEWO- MIEJSCE NA OGNISKO I GRILA-TARASY BIESIADNE-TV SATELITARNA- WI-FI-WYŻYWIENIE, STOŁY BIESIADNE, WYROBY WŁASNE.MOŻLIWY SPŁYW KAJAKOWY, SKUTERY WODNE, JACHT MOTOROWY LUB PAINTBALLPEŁNE OFERTY NA EMAILA"
## [15] "Zapraszamy do naszych kwater pracowniczych , polozonej blisko przystanku JORSKIEGO (RADZYMIŃSKA)\r\nOddalonej o 10 min od Dworca Wileńskiego.\r\nOferujemy pokoje trzy oraz pięcio osobowe.\r\nPokoje są wyposarzone w :\r\n- Łóżka \r\n- Pościel\r\n- Telewizory\r\n- Szafy\r\n- Stoliki\r\nDo wspólnego wykorzystania:\r\n- Kuchnia (lodówka, mikrofalówka, kuchenka gazowa, oraz piekarnik)\r\n- Darmowa siłownia \r\n- Darmowy dostęp do sieci Wi-Fi\r\n- Pralnia\r\n- Darmowy parking\r\n- Miejsce na grill-a\r\n(Obiekt Monitorowany)\r\n\r\nCena za :\r\n- Doba 15zł\r\n- Miesiąc 450zł"
## [16] "Do\r\nwynajęcia pokój 20 m2 z balkonem w segmencie dla mężczyzny\r\nniepalącego, umeblowany, z dostępem do kuchni i łazienki, w cenie\r\nnajmu opłaty za\r\nwszystkie media.Lokalizacja:Warszawa Mokotów Dolny, ul. Aleksandra Dyżewskiego, dobry\r\ndojazd do centrum (autobus 108 i 167).Dostępny od:1 listopada\r\n2016 roku.Kontakt telefoniczny:22 6510456 oraz 517 310\r\n437"
## [17] "Pokoje, Kwatery. krótki i długi termin:Super Punkt Media w Cenie. Ciepło czysto i przytulnie.Na dłużej i krócej. Jeśli jesteś w Warszawie to u mnie znajdziesz ciepły i bezpieczny dach nad głową. Pokoje jedno i wieloosobowe. , K\\kwatery. krótki i długi termin. Cena od 15 zł za doboosobę przy dłuższym pobycie w pokoju czteroosobowym. Serdecznie polecam.509398996, Dojazd do centrum około 25 minut. SKM-ką. Autobusy 521, 147, 146, 119, a także prywatne linie. W okolicy dużo sklepów oraz 10 minut pieszo na pocztę. W pobliżu szkoły i przedszkola. Ceny od 650 zl w pokoju jednoosobowym przy dluższym minimum trzymiesięcznym terminie. Cena za kwaterę od 13 zl za doboosobę. Serdecznie polecam t. 509385961."
## [18] "Предлагаем услуги по недорогому но качественному проживанию в нашем хостеле.\r\n\r\nХостел расположен в районе Wesola, ул. 1-go Praskiego pułku 62 b.\r\n\r\nВ распоряжении наших гостей парковка на 8 паркомест, WI-FI на территории всего дома, бытовая техника на кухне в 35м.кв.\r\n Возможна аренда семейных комнат - стоимость 530 зл одно место в месяц Возможно как краткосрочное так и долгосрочное проживание. \r\nСтоимость проживания от 17 зл/сутки\r\n Бронирование по телефону: 697-80-20-78\r\n Польский, Русский, Украинский. Всегда рады гостям!!! Oferujemy usługi noclegowe na każdą kieszeń w Wesolej. Okolice ulicy 1-go Praskiego pułku 62 b. Piękny dom z dużym parkingiem na terenie posesji. W domu na wyposażeniu znajduje się: ogólnodostępna kuchnia (AGD: 2 duże lodówki, zastawa, wszystko na wyposażeniu) z dużym salonem i jadalnią. Łazienka na każdym piętrze prysznic i wanna, WI-FI, w każdym pokoju. Zmiana pościeli, serwis sprzątający. Dogodny i szybki dojazd do centrum. W okolicy sklepy, duże markety. Serdecznie zapraszamy."
## [19] "Zapraszamy do kwater pracowniczych i hostelu. Warszawa Mokotów ul. Świeradowska Stacja metra Wilanowska. Wolne miejsca w pokojach 4, 6 i 8 osobowych. Blisko Biedronka. Okolica willowa, spokojna. Ceny: 470 - 520 - 570 zł za miesiąc (15, 40-18, 60 zł / za dobę)150 - 180 zł za tydzień30 - 35 zł za dzień602-22-77-11"
## [20] "Witam, Zapraszam do wynajęcia jednego z naszych pokoi. Do wynajęcia mamy pokoje jednoosobowe oraz pokój dwuosobowy.( w każdym pokoju łóżko , biurko , krzesło, szafa zabudowana)( w pokoju dwuosobowym dwa łóżka jednoosobowe, biurko, krzesło, szafa )Dom w bardzo atrakcyjnej lokalizacji blisko ul. Aleje Jerozolimskie - CH Blue City - CH RedutaDom składa się z nieprzechodnich pokoi, ogólnodostępnej kuchni, 4 niezależnych łazienek plus dodatkowo oddzielne wc.W przedpokoju ogólnodostępna szafa. W mieszkaniu dostępny szybki internet.Mieszkanie zlokalizowane na Włochach ul. Karatowa 75 minut od przystanku autobusowego.15 min dojazd do Centrum10 min dojazd komunikacją do CH Blue City oraz CH Reduta10 min do przystanku PKP WłochyW najbliższej okolicy liczne sklepy spożywcze, punkty usługowe, Centra HandloweKoszt wynajmu pokoju jednoosobowego wynosi 650 zł ( 2 pokoje) oraz 750 zł ( jeden pokój) + 150 zł media (stała opłata za wodę, prąd, gaz, ogrzewanie, internet).Kaucja zwrotna 1000 złKoszt wynajmu pokoju dwuosobowego wynosi 1000 zł ( 500 zł od osoby) + 150 zł media od osoby (stała opłata za wodę, prąd, gaz, ogrzewanie, internet).Kaucja zwrotna 1500 zł. ( 750 zł od osoby)Pokój może być również wynajęty przez jedną osobę za cenę 1000 zł plus 150 zł mediaKaucja zwrotna dla jednej osoby 1000 złKontakt:Przemysław: 508 427 910Osoby zainteresowane zapraszam do oglądania."
## [21] "Zapraszam do wynajęcia nieprzechodniego pokoju jednoosobowego w domu na zamkniętym osiedlu, ulica Algierska.Pokój w pełni umeblowany (łóżko, biurko , szafa, komoda, krzesło). 20 min dojazd komunikacją do CentrumPrzystanek autobusowy 5 minut od domu. W najbliższej okolicy liczne sklepy spożywcze, punkty usługowe, restauracje.Koszt wynajmu pokoju wynosi 700 zł czynsz plus 150 media (stała opłata za wodę, prąd, gaz, ogrzewanie, internet). Kaucja zwrotna 1000 zł. Kontakt: 691 - 952 - 888NIE JESTEŚMY AGENCJĄ. NIE POBIERAMY OPŁAT ZA OGLĄDANIE I UMOWĘ.Osoby zainteresowane zapraszam do oglądania."
## [22] "Akademiki Student-house jest dostepny dla studentów państwowych oraz prywatnych uczeln wyzszych. Chętnie przyjmujemy studentów z zagranicy.Lokalizacja i dojazd:Cicha okolica. Obok domy jednorodzinne. Dom znajduję się w 200 m od przystanku autobusowego Kapeli po ul Piławskiej. Bezpośredni dojazd autobusem 709, 715, lub 739 do Uczelni Łazarskiego za 14 min., do METRO WILANOWSKA – 15 min.Opis domu: Rok budowy 1990, okna PVC, 400 m2 powerchnia mieszkalna, 2 niezależnych wejścia, łącznie 35 miejsc. Działka 700 m2. Na zewnątrz domu się znajduje: Mejsce na parking dla 4-5 samochodów, namiot, barbekiu, zalozony trawnik. Teren dobrze zagospodorowany. Obok znajduje się:McDonalds (850 m), Parafia rzymskokatolicka św. Apostołów Piotra i Pawła (3, 5 km), Centrum Handlowe Ursynów (3, 8 km), Lidl (5, 2 km), Multikino (5, 8 km), Gymnasion Fitness club (2, 9 km).Kuchni:W Hostelu są 2 kuchni posiadające pełne wyposażenie: 2 czajniki elektryczne, 2 czteropalnikowe kuchenki indukcyjne, czteropalnikowa kuchenka elektryczna, , 2 kuchenki mikrofalowe, lodówki, komplet garnków, patelni oraz 2 komplety naczyń (zalecamy jednak posiadanie własnych).Pokoje:Na wyposażeniu każdego pokoju znajdują się: szafa, biurko, łóżko wraz z materacem i kompletem bielizny pościelowej.Cena:Miejsce w pokoju 4-os – 640 zł/155 euro* (cena za miesiąc pobuty, zawiera koszty media);Miejsce w pokoju 2-os – 840 zł/200 euro* (cena za miesiąc pobuty, zawiera koszty media).Kontakt: Oleksandra - 537629463 (polski, ukrainski , angielski, rosyjski)"
## [23] "Wynajmę dom nieumeblowany przy ul.Kasztanowej na Woli Justowskiej dla grupy studentów lub firmie dla pracowników do czerwca 2017 roku.Blisko do przystanku komunikacji autobusowej - 100 metrów, sklep 150 metrów.Kuchnia jest umeblowana, łazienki też umeblowane-pralka automatyczna też jest.Dom posiada wszystkie media - nadaje się do zamieszkania, czysty, ciepły.Miesięcznie 3500 zł. Kaucja 1 miesięczna. Media płaci najemca.Dom może zamieszkiwać kilkanaście osób dzieląc koszty najmu. Tel.663931805 lub przez formularz gumtree . Po podaniu nr telefonu - oddzwonię.Jestem właścicielem, nie ma prowizji.Dom jest w tej chwili niezamieszkały."
## [24] "Проживание в хостеле\r\n\r\n Расположение: Район Wesola, ул. 1-go Praskiego pułku 62 b.\r\n\r\n Удобства: Парковка на 8 паркомест, WI-FI на территории всего дома, бытовая техника на кухне в 35м.кв.\r\n\r\n Краткосрочное и долгосрочное проживание.\r\n\r\n Стоимость проживания:\r\n\r\n Сутки - 35 злотых\r\n\r\n Неделя - 150 злотых\r\n\r\n Месяц - 490 злотых\r\n\r\n Бронирование по телефону.\r\n\r\n Польский, Русский, Украинский.\r\n\r\n Всегда рады гостям !\r\n\r\n\r\n\r\n Okolice ulicy 1-go Praskiego pułku 62 b. \r\n\r\n Piękny dom z dużym parkingiem na terenie posesji. \r\n\r\n W domu na wyposażeniu znajduje się: ogólnodostępna kuchnia (AGD: lodówka, zastawa, wszystko na wyposażeniu) z dużym salonem i jadalnią. Łazienka na każdym piętrze prysznic i wanna, WI-FI, w każdym pokoju. \r\n\r\n Zmiana pościeli, serwis sprzątający. \r\n\r\n Dogodny i szybki dojazd do centrum. \r\n\r\n W okolicy sklepy, duże markety. \r\n\r\n Serdecznie zapraszamy."
## [25] "Предлагаем проживание в 4-6-8-10 местных номерах в хостеле «Budget Hostel» в самом сердце Варшавы. Так же имеем отдельные двухместные номера. \r\n Новый хостел в сердце Варшавы !!! 500 метров от вокзала Dworzec Warszawa Centralna \r\n 16 номеров: - Двухместный с отдельными кроватями: ПН;ВТ;СР;ВС - 125 зл/номер. ЧТ;ПТ;СБ - 145 зл/номер. Заказ завтрака - 11 зл/чел. - Двухместный с семейной кроватью ПН;ВТ;СР;ВС - 125 зл/номер. ЧТ;ПТ;СБ - 145 зл/номер. Заказ завтрака - 11 зл/чел. - Четырехместные женские; Шестиместные женские; Четырехместные мужские; Шестиместные мужские; Шестиместный микс; Восьмиместный микс; Десятиместный микс. - 45 зл/чел.\r\n\r\nWarszawa, 00-831, ul. Twarda 44. \r\n\r\n Proponujemy przytulne pokoje 4-6-8-10 osobowe w ścisłym sercu stolicy już od 45 zł/osoba/doba !!! W swojej ofercie posiadamy również pokoje i 2 osobowe od 125 zł/pokoj. \r\nAtrakcyjna lokalizacja w centrum Warszawy: 500 metrow od Dworca Warszawa Centralna \r\n Sprawdź już teraz! Zapraszamy!"
## [26] "Pokoje pracownicze dla Firm 8, 10 i więcej osobowych. Hostel świeżo otwarty , nowe łóżka , pościele , wyremontowane łazienki , kuchnie , internet .W pokojach po 4 łózka , parking przy hostelu .Lokalizacja to ul. Stroma 26 w bok od ul.Górczewskiej na przeciwko WOLA PARKU. Koszt zakwaterowania pracowników to 450zł od osoby przy dużych grupach możliwość negocjacji .Zapraszam do współpracy tel -516340240"
## [27] "--> Nasz obiekt znajduje się w dogodnej lokalizacji - w dzielnicy Wawer--> Pokoje 1-2-3-4-osobowe w wysokim standardzie--> Nie jesteśmy brudną i śmierdzącą kwaterą!!!--> Nie posiadamy piętrowych łóżek--> Każdy pokój posiada TV i dostęp do internetu--> Pokoje są bardzo blisko łazienek--> Do dyspozycji jest wspólna, w pełni wyposażona kuchnia--> Przy obiekcie jest dużo miejsc do parkowania--> Cena zależy od ilości osób i czasu trwania najmu--> Sprawdź już teraz, zadzwoń i ustal szczegóły"
## [28] "Wynajmę pokój w bardzo dobrym standardzie w domu na granicy Mokotowa i Wilanowa przy ul. Nałęczowskiej. Budynek znajduje się w pobliżu pętli autobusowej Sadyba, przystanku Wiertnicza oraz przystanku Nałęczowska. W pobliżu wiele sklepów, czynna całodobowo stacja benzynowa, siłownia itd. W pokoju znajduje się łóżko, szafa, biurko, krzesło, fotel, stolik. Wszystko nowe, urządzone z gustem. Pokój jest zamykany na klucz.Do współdzielenia jest kuchnia, dwie łazienki, suszarnia, piwnica. Współlokatorami są młode pracujące osoby.Koszt miesięcznego wynajmu wynosi 900 zł + niewielkie opłaty licznikowe. Kaucja wysokości miesięcznego czynszu możliwa do rozbicia na raty. Umowa na czas nieokreślony z miesięcznym okresem wypowiedzenia. Zapraszam do kontaktu telefonicznego pod nr 503 933 575 i oglądania!Foreigners welcome! For more details call 503 933 575 ."
## [29] "Witam, Zapraszam do wynajęcia jednego z naszych pokoi. Do wynajęcia mamy 1 pokój jednoosobowy. Dostępny od zaraz. Mieszkanie w bardzo atrakcyjnej lokalizacji blisko metra Kabaty. Mieszkanie składa się z 14 nieprzechodnich pokoi, ogólnodostępnej kuchni, 3 niezależnych łazienek. Wysoki standard. W przedpokoju ogólnodostępna szafa. W mieszkaniu dostępny szybki internet.Cena: 950 zł miesięcznie plus 150 zl (opłata za media). Kaucja: 1000 zł. (Dla obcokrajowców kaucja wynosi 2000 zł.)Zapraszam do oglądania.Svetlana: 514-322-795."
## [30] "noclegi 495 Zl (mies.)\r\nW\r\nnowym, estetycznym, nowoczesnym hostelu oferują łóżka.Pokoje\r\ndla 4 i 6 osób.Zapraszamy\r\ngości miasta, podróżujących w interesach, jak i studentów.\r\nOddzielne pokoje męskie i żeńskie.tydzień\r\n= 150 zł.dzień\r\n= 25 zł.Oferujemy\r\nrównież prywatne pokoje dla 2 - 4 osób.= od 90 zł.Предлагаем\r\nместа в новом, эстетичном, современном\r\nхостеле.Номера\r\nдля 4 и 6 человек.Мы\r\nприветствуем гостей города, деловых\r\nпутешественников и студентов. Отдельные\r\nмужские и женские номера.неделя\r\n= 150 злотых.сутки\r\n= 25 злотых.Мы\r\nтакже предлагаем отдельные номера для\r\n2 -. 4-х человек = от 90 злотых."
## [31] "Oferujemy zakwaterowanie\r\ndla studentów. 4 osoby w pokoju. Wszystkie pokoje są świeżo po remoncie. Bardzo\r\nwygodne, kilka toalety i kuchnie. Wszystko co potrzebne do komfortowego pobytu\r\ni studiów. \r\n150 zł tygodniowo\r\n25 zł za dzień.\r\nWystawiamy faktury, dajemy dokumentację\r\nraportowania. \r\n\r\n\r\n\r\nПредлагаем размещение для студентов. 4 человека в комнате. Все номера\r\nбыли недавно отремонтированы. Очень удобно, несколько туалетов и кухонь. Все, что нужно для комфортного проживания и учебы.150 злотых за неделю25 злотых - в сутки."
## [32] "Pokoje do wynajecia od zaraz na Wilanowie Wysoki standard wi fi Kuchnia"
## [33] "W nowym, estetycznym, nowoczesnym hostelu oferują łóżka.Pokoje dla 4 i 6 osób.Zapraszamy gości miasta, podróżujących w interesach, jak i studentów. Oddzielne pokoje męskie i żeńskie.tydzień = 150 zł.dzień = 28 zł.W CENIE NOCLEGU :-pościel-bespłatny dostęp do sieci WI-FI-wypożyczenie suszarki do włosów oraz żelazka i deski do prasowaniaw pelni wyposazona kuchnia: lodowka, mikrofalowka, kuchenka, czajnik elektryczny, garnki, talerzy, widelca i łyżki, kubki-kawa i herbata-centralne ogrzewanie-zlecenie prania(10zł)Hostel Lubelskiul.Trakt Lubelski 347C515066290"
## [34] "Предлагаем услуги по недорогому но качественному проживанию в нашем хостеле.\r\n\r\nХостел расположен в районе Wesola, ул. 1-go Praskiego pułku 62 b.\r\n\r\nВ распоряжении наших гостей парковка на 8 паркомест, WI-FI на территории всего дома, бытовая техника на кухне в 35м.кв.\r\n Возможна аренда семейных комнат - стоимость 530 зл одно место в месяц Возможно как краткосрочное так и долгосрочное проживание. \r\nСтоимость проживания от 17 зл/сутки\r\n Бронирование по телефону: 697-80-20-78\r\n Польский, Русский, Украинский. Всегда рады гостям!!! Oferujemy usługi noclegowe na każdą kieszeń w Wesolej. Okolice ulicy 1-go Praskiego pułku 62 b. Piękny dom z dużym parkingiem na terenie posesji. W domu na wyposażeniu znajduje się: ogólnodostępna kuchnia (AGD: 2 duże lodówki, zastawa, wszystko na wyposażeniu) z dużym salonem i jadalnią. Łazienka na każdym piętrze prysznic i wanna, WI-FI, w każdym pokoju. Zmiana pościeli, serwis sprzątający. Dogodny i szybki dojazd do centrum. W okolicy sklepy, duże markety. Serdecznie zapraszamy."
## [35] "[POKÓJ WYNAJMĘ]English is belowMamy do wynajęcia (tylko na 3 miesiące) od 1 grudnia 2016 do 1 marca 2017 pokój jedno lub dwuosobowy (dla jednej osoby lub dla pary). Pokój jest umeblowany i ma jedno wielkie łóżko. Mieszkanie ma dwa piętra, 4 pokoje, 2 łazienki, taras i salon gdzie w ciągu dnia spędzamy czas. Nie ma własciciela w mieszkaniu. Cena to 750zl za pokój + 150zł opłaty od osoby. Wysoki standard, wszystko wyposażone. Poszukujemy wesołych i otwartych osób, które będą tworzyły fantastyczny klimat i sprzątały. Lokalizacja: Tatarska 5 (2 przystanki na Rynek Główny). Zapraszamy do ogladania.Hello, There is an available room just for 3 months from December 1st 2016 to March 1st 2017.The room is for a single person or a couple. The room is furnished with a great bed.The apartment has two floors, 4 rooms, 2 bathrooms, a terrace and a lounge where we spend our time together for dinner or something. There is no owner of the apartment. The price is 750 PLN + 150 PLN for one month. Plus refundable deposit of 550 PLN.We are looking for a person who is cheerful and open minded, and takes care of order so that we can create a good atmosphere together.Kontakt tylko telefoniczny:Ania Tel 693852797[English Only] Akane Tel 537168390"
## [36] "Pokoje, Kwatery. krótki i długi termin:Super Punkt Media w Cenie. Ciepło czysto i przytulnie.Na dłużej i krócej. Jeśli jesteś w Warszawie to u mnie znajdziesz ciepły i bezpieczny dach nad głową. Pokoje jedno i wieloosobowe. , K\\kwatery. krótki i długi termin. Cena od 15 zł za doboosobę przy dłuższym pobycie w pokoju czteroosobowym. Serdecznie polecam.509398996, Dojazd do centrum około 25 minut. SKM-ką. Autobusy 521, 147, 146, 119, a także prywatne linie. W okolicy dużo sklepów oraz 10 minut pieszo na pocztę. W pobliżu szkoły i przedszkola. Ceny od 650 zl w pokoju jednoosobowym przy dluższym minimum trzymiesięcznym terminie. Cena za kwaterę od 13 zl za doboosobę. Serdecznie polecam t. 509385961."
## [37] "Pokoje w domku goscinnym od zaraz Najlepsze ceny od 60 zl od osoby Wysoki standardZAPRASZAMY wicej informacji telefonicznie"
## [38] "Проживание в хостеле\r\n\r\n Расположение: Район Wesola, ул. 1-go Praskiego pułku 62 b.\r\n\r\n Удобства: Парковка на 8 паркомест, WI-FI на территории всего дома, бытовая техника на кухне в 35м.кв.\r\n\r\n Краткосрочное и долгосрочное проживание.\r\n\r\n Стоимость проживания:\r\n\r\n Сутки - 35 злотых\r\n\r\n Неделя - 150 злотых\r\n\r\n Месяц - 490 злотых\r\n\r\n Бронирование по телефону.\r\n\r\n Польский, Русский, Украинский.\r\n\r\n Всегда рады гостям !\r\n\r\n\r\n\r\n Okolice ulicy 1-go Praskiego pułku 62 b. \r\n\r\n Piękny dom z dużym parkingiem na terenie posesji. \r\n\r\n W domu na wyposażeniu znajduje się: ogólnodostępna kuchnia (AGD: lodówka, zastawa, wszystko na wyposażeniu) z dużym salonem i jadalnią. Łazienka na każdym piętrze prysznic i wanna, WI-FI, w każdym pokoju. \r\n\r\n Zmiana pościeli, serwis sprzątający. \r\n\r\n Dogodny i szybki dojazd do centrum. \r\n\r\n W okolicy sklepy, duże markety. \r\n\r\n Serdecznie zapraszamy."
## [39] "Предлагаем проживание в 4-6-8-10 местных номерах в хостеле «Budget Hostel» в самом сердце Варшавы. Так же имеем отдельные двухместные номера. \r\n Новый хостел в сердце Варшавы !!! 500 метров от вокзала Dworzec Warszawa Centralna \r\n 16 номеров: - Двухместный с отдельными кроватями: ПН;ВТ;СР;ВС - 125 зл/номер. ЧТ;ПТ;СБ - 145 зл/номер. Заказ завтрака - 11 зл/чел. - Двухместный с семейной кроватью ПН;ВТ;СР;ВС - 125 зл/номер. ЧТ;ПТ;СБ - 145 зл/номер. Заказ завтрака - 11 зл/чел. - Четырехместные женские; Шестиместные женские; Четырехместные мужские; Шестиместные мужские; Шестиместный микс; Восьмиместный микс; Десятиместный микс. - 45 зл/чел.\r\n\r\nWarszawa, 00-831, ul. Twarda 44. \r\n\r\n Proponujemy przytulne pokoje 4-6-8-10 osobowe w ścisłym sercu stolicy już od 45 zł/osoba/doba !!! W swojej ofercie posiadamy również pokoje i 2 osobowe od 125 zł/pokoj. \r\nAtrakcyjna lokalizacja w centrum Warszawy: 500 metrow od Dworca Warszawa Centralna \r\n Sprawdź już teraz! Zapraszamy!"
## [40] "[MIEJSCE W POKOJU 2OSOBOWYM] Hej! Szukamy dziewczyny do pokoju dwuosobowego w domu 'jednorodzinnym'. Budynek znajduje się w spokojnej, zielonej dzielnicy Wola Justowska. Dla pokoju 2 osobowego dedykowana jest osobna łazienka oraz toaleta. Dom znajduje się w bliskiej odległości do przystanków: - Zielony Dół - Królowej JadwigiPozwala to na bezpośredni dojazd na wszystkie główne uczelnie w Krakowie (AGH, UR, UJ, PK, UEK). Czas jazdy do centrum (rynek) nie przekracza 20 minut.Cena wraz z mediami to 500 zł [msc/os]. Więcej informacji udzielę w wiadomości prywatnej"
Oferty te dotyczą hoteli pracowniczych lub całych domostw. Tym razem to cena podana jest za pokój, a wielkość opisuje metraż całego mieszaknia/domu. Niestety nie ma żadnej konsekwencji w podawaniu przez oferantów ceny i wielkości powierzchni wynajmu. Raz podany jest metraż całego mieszkania z ceną za pokój i liczbą pokojów. Innym razem podany jest metraż pokoju z ceną za wszystkie pokoje i podaną liczbą pokojów. Żeby ustandaryzować te oferty trzebaby przeprowadzić wyrafinowaną analizę treści opisu, lub wprowadzić poprawki ręcznie, czytając każdą ofertę po kolei. Na potrzeby projektu ograniczę się do usunięcia tak skrajnych przypadków, aż nie uzyskam w miarę rozsądnej korelacji między tymi dwoma wartościami.
Przyjrzyjmy sie jeszcze ofertom posiadającym wyjątkowo niską cenę (poniżej 100 PLN) i bardzo mały metraż (10 m^2).
pokoje %>%
filter(
cena <= 100,
wielkosc <= 10
) %>%
.$opis
## [1] "DO DYSPOZYCJI GOŚCI ODDAJEMY 36 miejsc noclegowych na dwóch kondygnacjachPosiadamy 6 pokoi 6-osobowych. Oferta skierowana do grup.Pokoje są ogrzewane c.o. i wyposażone w:-łóżka (piętrowe i pojedyncze)-szafę ubraniową-szafki nocne-stół-krzesła-lampkę nocną-gniazdko internetowePonadto na każdym piętrze znajdują się:-aneks sanitarny z natryskami i umywalkami z bieżącą ciepłą i zimną wodą oraz toaletami-w pełni wyposażony aneks kuchennyNa terenie obiektu znajduje się :-sala szkoleniowa z odbiornikiem audiowizualnym-stół do ping ponga-tawerna - restauracja z całodziennym wyzywieniem-winda-siłownia- mała siłownia otwartaNa zamykanym terenie (kamery) mieści się parking, wypożyczalnia sprzętu wodnego (łódki, jachty, kajaki, rowerki wodne i i.in.) oraz miejsce na grilla. W pobliżu znajduje się boisko do koszykówki, plac zabaw, sklepy spożywcze, poczta. Ośrodek szkoleniowo- żeglarski Horn w Krakowie - najtańsze noclegi od 30 zł"
## [2] "HOSTEL tanie noclegi pokoje kwatery do wynajęcia WARSZAWA Wilanów Mokotów\r\n\r\n\r\nPokoje Gościnne w Klimatycznej Willi z lat 70tych na Sadybie-Mokotów\r\nZdrojowa 28 Hostel.\r\n\r\n\r\nwww.Zdrojowa28Hostel.pl\r\n\r\n\r\nInformacje poprzez kontakt telefoniczny 9:00-20:00\r\nlub mailowy \r\nZameldowanie 15:00 - 21:00\r\n\r\n\r\nDoskonałe miejsce dla osób mniej wymagających, ceniących cisze i spokój.\r\nOferujemy ekonomiczne, schludne pokoje w niedalekiej odległości od centrum. Doskonała alternatywa dla zatłoczonych hosteli, hoteli robotniczych. Szybki dojazd do centrum 15 min. autobusem, 10 min. samochodem, W sąsiedztwie Pałac w Wilanowie, Świątynia Opatrzności Bożej, Rezerwat przyrody Jeziorko Czerniakowskie, Park Kultury Powsin, Park Łazienki, Belweder, Trak Królewski.CH Sadyba Best Mall, tereny zielone, kort tenisowy, boiska do piłki nożnej i koszykówki, ogród do dyspozycji gości.\r\nDoskonały dojazd do centrum, zagłębia biurowego na Służewcu (Postępu, Marynarska), Politechnika Warszawska , SGGW, Uniwersytet Warszawski, SGH !\r\n\r\n\r\nZameldowanie 15:00 - 21:00\r\n\r\n\r\nGwarantujemy:\r\nWIFI na terenie całego obiektu\r\naneks kuchenny do dyspozycji\r\nczęść wspólną, jadalnie, pokoje z balkonami\r\npościel, piękną, spokojną okolicę\r\n\r\n\r\nwystawiamy F-VAT\r\n\r\n\r\npokój 1 osobowy studencki, ekonomiczny od 67, 00 zł/doba wspólna łazienka\r\npokój 1 osobowy od 85, 00 zł/ doba wspólna łazienka\r\npokój 2 osobowy od 99, 00 zł/ doba wspólna łazienka\r\npokój 3, 4 osobowy od 129, 00 zł/ doba wspólna łazienka\r\nPokój 3, 4 osobowy z prywatną łazienką od 149, 00 zł/ doba\r\n\r\n\r\n*cena zależy od terminu i długości pobytu\r\n\r\n\r\nZapraszamy na naszą stronę: http://zdrojowa28hostel.pl \r\n\r\n\r\nADRES:\r\nZdrojowa 28 Hostel Apartamenty Wilanów\r\nWarszawa\r\n\r\nul.Zdrojowa 28"
## [3] "Do okoła pełno kawiarni i restauracji. Po przejściu mostu jesteśmy w Centrum. Niezwykle cicha okolica z dala od zgiełku miasta."
## [4] "Oferujemy komfortowe pokoje w przystępnej cenie na Bemowie w Warszawie.\r\nPokoje 2, 3-4 osobowe z tv, internetem i czystą pościelą. Kuchnia w pełni wyposażona, 3 łazienki z prysznicem. Bezpieczne miejsca parkingowe.\r\nDoskonała lokalizacja- Warszawa Bemowo blisko Ul.Powstańców Śląskich, Górczewska, Broniewskiego , centru handlowe Carrefour, Wola Park, Arkadia.\r\nKomfortowe pokoje kilkuosobowe od 25 zł za osobę za dobę do 35 zł za osobę.\r\nCena za miesiąc 580 zł.\r\n\r\nhttp://hotelpracowniczy.com.pl/\r\nWięcej informacji pod numerem telefonu 696-217-277"
## [5] "Jesteś przejazdem w Katowicach i szukasz noclegu blisko centrum? Oferujemy wygodne pokoje w przystępnej cenie. Mieścimy się tylko kilkaset metrów od Spodka w spokojnej dzielnicy - Koszutka. U nas w cenie pokoju pooglądasz kablówkę i skorzystasz z bezpłatnego wifi. Mamy 7 pokoi 2-3 i 4 osobowych.Posiadamy także salę sypialnianą koedukacyjną (cena 40 zł za łóżko za noc) Łazienka z gorącym prysznicem jest wspólna na 2-3 pokoje. Dobrze wyposażony aneks kuchenny jest dostępny dla wszystkich gości. Marzysz o gorącym prysznicu i czystej pościeli na koniec wyczerpującego dnia? ZAPRASZAMY DO NAS!!!Czekamy na was!Hostel Kaktustel. 697246581 - Marcin 690886667 - Darek rezerwacje@hostelkaktus.pl sprawdź dostępność i zarezerwuj on-line na www.hostelkaktus.pl"
## [6] "Oferujemy komfortowe pokoje w przystępnej cenie na Bemowie w Warszawie.\r\nPokoje 2, 3-4 osobowe z tv, internetem i czystą pościelą. Kuchnia w pełni wyposażona, 3 łazienki z prysznicem. Bezpieczne miejsca parkingowe.\r\nDoskonała lokalizacja- Warszawa Bemowo blisko Ul.Powstańców Śląskich, Górczewska, Broniewskiego , centru handlowe Carrefour, Wola Park, Arkadia.\r\nKomfortowe pokoje kilkuosobowe od 25 zł za osobę za dobę do 35 zł za osobę.\r\nCena za miesiąc 580 zł.\r\n\r\nhttp://hotelpracowniczy.com.pl/\r\nWięcej informacji pod numerem telefonu 696-217-277"
## [7] "DO DYSPOZYCJI GOŚCI ODDAJEMY 36 miejsc noclegowych na dwóch kondygnacjachPosiadamy 6 pokoi 6-osobowych. Oferta skierowana do grup.Pokoje są ogrzewane c.o. i wyposażone w:-łóżka (piętrowe i pojedyncze)-szafę ubraniową-szafki nocne-stół-krzesła-lampkę nocną-gniazdko internetowePonadto na każdym piętrze znajdują się:-aneks sanitarny z natryskami i umywalkami z bieżącą ciepłą i zimną wodą oraz toaletami-w pełni wyposażony aneks kuchennyNa terenie obiektu znajduje się :-sala szkoleniowa z odbiornikiem audiowizualnym-stół do ping ponga-tawerna - restauracja z całodziennym wyzywieniem-winda-siłownia- mała siłownia otwartaNa zamykanym terenie (kamery) mieści się parking, wypożyczalnia sprzętu wodnego (łódki, jachty, kajaki, rowerki wodne i i.in.) oraz miejsce na grilla. W pobliżu znajduje się boisko do koszykówki, plac zabaw, sklepy spożywcze, poczta. Ośrodek szkoleniowo- żeglarski Horn w Krakowie - najtańsze noclegi od 30 zł"
W tych ofertach zdecydowanie nieprawidłowo podano wielkość. 6 osobowy pokój raczej nie ma 5 m^2, zaś 3-4 osobowy nie ma 1 m^2.
Co się stanie, gdy ograniczę zestaw danych ze względu na cenę i wielkość przyjmując nieco węższe - eliminujące wadliwe oferty - widełki?
sprawdzenie01 <-
pokoje %>%
select(-opis) %>%
filter(
between(cena, 100, 1000),
between(wielkosc, 10, 30)
)
summary(sprawdzenie01)
## lokalizacja cena do_wynajecia_przez
## Kraków, Małopolskie:693 Min. : 100.0 Agencja : 114
## Mokotów :111 1st Qu.: 550.0 Nie podano: 120
## Targówek : 83 Median : 700.0 Właściciel:1163
## Bielany : 71 Mean : 679.7
## Praga Południe : 70 3rd Qu.: 800.0
## Ursynów : 64 Max. :1000.0
## (Other) :305
## wspoldzielenie wielkosc
## Nie podano : 98 Min. :10.00
## Współdzielenie mieszkania/domu:1084 1st Qu.:12.00
## Współdzielenie pokoju : 215 Median :15.00
## Mean :15.73
## 3rd Qu.:20.00
## Max. :30.00
##
## liczba_pokoi rodzaj_nieruchomosci
## 2 pokoje :329 Dom :331
## 3 pokoje :420 Inne :147
## 4 pokoje :117 Mieszkanie:919
## 5 pokoi : 53
## 6 lub więcej pokoi : 41
## Kawalerka lub garsoniera: 68
## Nie podano :369
## preferowana_plec palacy przyjazne_zwierzakom liczba_wyrazow
## Bez preferencji:908 Nie:680 Nie:631 Min. : 2.00
## Kobieta :299 Tak:717 Tak:766 1st Qu.: 37.00
## Mężczyzna :190 Median : 70.00
## Mean : 86.99
## 3rd Qu.:115.00
## Max. :558.00
##
plot(cena~wielkosc, sprawdzenie01)
fit01 <- lm(cena~wielkosc, sprawdzenie01)
abline(fit01, col = "red")
Nieintuicyjnie cena pokojów do wynajęcia spada wraz ze wzrostem metrażu. Może być to spowodowane dalszą niekonsekwencją we wprowadzaniu danych przez oferantów. Na tym etapie postanowiłem przyjrzeć się innym danym z portalu gumtree.pl. Tym razem oferty dotyczą mieszkań i domów do wynajęcia. Ponieważ ofert jest w sumie niemalże 30 tysięcy postanowiłem ograniczyć się do Warszawy (13 tysięcy ofert) już na etapie scrapowania danych.
Dla mieszkań i domów zmieniły się dwa atrybuty do nadania ofertom. Zniknęły kolumny wspoldzielenie i preferowana_pleć zaś pojawiły się parking oraz liczba_lazienek. Tym razem ciężko o pomyłkę przy wpisywaniu ceny - mieszaknie jest traktowane jako całość i niezależnie od ilości pokojów cena powinna być podana za całość. To samo tyczy się metrażu. Sprawdźmy więc, czy aby napewno tak jest. Najpierw jednak uporządkujmy dane.
mieszkania <- read_csv("2016-11-23_Warszawa_df.csv")
## Parsed with column specification:
## cols(
## data_dodania = col_character(),
## lokalizacja = col_character(),
## href = col_character(),
## opis = col_character(),
## adres = col_character(),
## cena = col_character(),
## tytuł = col_character(),
## do_wynajęcia_przez = col_character(),
## liczba_pokoi = col_character(),
## rodzaj_nieruchomości = col_character(),
## `wielkość_(m2)` = col_integer(),
## parking = col_character(),
## liczba_łazienek = col_character(),
## dostępny = col_character(),
## palący = col_character(),
## przyjazne_zwierzakom = col_character()
## )
mieszkania %>% names()
## [1] "data_dodania" "lokalizacja" "href"
## [4] "opis" "adres" "cena"
## [7] "tytuł" "do_wynajęcia_przez" "liczba_pokoi"
## [10] "rodzaj_nieruchomości" "wielkość_(m2)" "parking"
## [13] "liczba_łazienek" "dostępny" "palący"
## [16] "przyjazne_zwierzakom"
names(mieszkania) <-
names(mieszkania) %>% chartr("ąęółćśźż", "aeolcszz", .)
mieszkania <-
mieszkania %>%
rename(wielkosc = `wielkosc_(m2)`) %>%
select(-c(data_dodania, href, adres, tytul, dostepny)) %>%
mutate(
liczba_wyrazow = stri_count_words(opis)
)
mieszkania %>%
select(-opis) %>%
lapply(
function(x) {
x %>%
table(useNA = "always") %>%
sort(decreasing = TRUE) %>%
head(20)
}
)
## $lokalizacja
## .
## Mokotów, Warszawa Śródmieście, Warszawa Wola, Warszawa
## 3756 3217 1184
## Praga Południe, Warszawa Wilanów, Warszawa Ursynów, Warszawa
## 945 900 717
## Ochota, Warszawa Bielany, Warszawa Bemowo, Warszawa
## 686 553 458
## Żoliborz, Warszawa Wawer, Warszawa Praga Północ, Warszawa
## 457 209 178
## Białołęka, Warszawa Targówek, Warszawa Włochy, Warszawa
## 169 152 143
## Ursus, Warszawa Wesoła, Warszawa Rembertów, Warszawa
## 84 26 15
## <NA>
## 0
##
## $cena
## .
## 2 500 zł 3 000 zł 3 500 zł 2 400 zł
## 906 550 535 510
## 2 600 zł 2 300 zł 2 800 zł 2 200 zł
## 466 457 405 397
## 2 100 zł 4 500 zł 4 000 zł Proszę o kontakt
## 387 365 350 350
## 2 000 zł 2 700 zł 3 200 zł 2 900 zł
## 337 337 326 283
## 6 000 zł 5 500 zł 6 500 zł 5 000 zł
## 233 223 223 215
##
## $do_wynajecia_przez
## .
## Agencja Właściciel <NA>
## 11458 2266 125
##
## $liczba_pokoi
## .
## 2 pokoje 3 pokoje 4 pokoje
## 6945 3419 1066
## Kawalerka lub garsoniera 6 lub więcej pokoi 5 pokoi
## 999 813 478
## <NA>
## 129
##
## $rodzaj_nieruchomosci
## .
## Mieszkanie Dom <NA> Inne
## 12581 1122 115 31
##
## $wielkosc
## .
## 50 40 60 55 56 38 48 35 52 45 54 70 46 42 58 80 53 57
## 732 447 402 333 333 314 314 313 311 301 289 283 263 260 249 228 222 222
## 44 100
## 214 207
##
## $parking
## .
## <NA> Garaż Ulica Kryty Brak
## 6875 3532 1948 1375 119
##
## $liczba_lazienek
## .
## 1 łazienka <NA> 2 łazienki
## 6562 6033 1042
## 3 łazienki 4 lub więcej łazienek
## 150 62
##
## $palacy
## .
## <NA> Nie Tak
## 12194 1410 245
##
## $przyjazne_zwierzakom
## .
## <NA> Nie Tak
## 11597 1427 825
##
## $liczba_wyrazow
## .
## 160 154 67 162 136 156 161 150 96 184 155 135 95 152 158 164 74 104
## 138 130 122 122 110 110 109 108 107 106 103 102 101 101 101 101 100 100
## 147 148
## 100 99
mieszkania <-
mieszkania %>%
filter(
!(cena %in% c("Proszę o kontakt", "Wymiana/zamiana")),
!is.na(wielkosc)
) %>%
mutate(
lokalizacja = lokalizacja %>%
stri_replace_first_regex(", Warszawa", "") %>%
as.factor(),
do_wynajecia_przez = do_wynajecia_przez %>%
plyr::mapvalues(NA, "Nie podano") %>%
as.factor(),
parking = parking %>%
plyr::mapvalues(NA, "Nie podano") %>%
as.factor(),
liczba_pokoi = liczba_pokoi %>%
plyr::mapvalues(NA, "Nie podano") %>%
as.factor(),
rodzaj_nieruchomosci = rodzaj_nieruchomosci %>%
plyr::mapvalues(NA, "Inne") %>%
as.factor(),
liczba_lazienek = liczba_lazienek %>%
plyr::mapvalues(NA, "Nie podano") %>%
as.factor(),
palacy = palacy %>%
plyr::mapvalues(NA, "Tak") %>%
as.factor(),
przyjazne_zwierzakom = przyjazne_zwierzakom %>%
plyr::mapvalues(NA, "Tak") %>%
as.factor(),
cena = stri_extract_all_regex(
cena, "[[:digit:]]"
) %>%
stri_join_list() %>%
as.integer()
)
mieszkania %>% summary()
## lokalizacja opis cena
## Mokotów :3680 Length:13390 Min. : 20
## Śródmieście :3129 Class :character 1st Qu.: 2400
## Wola :1138 Mode :character Median : 3000
## Praga Południe: 908 Mean : 4685
## Wilanów : 883 3rd Qu.: 4500
## Ursynów : 688 Max. :2133000
## (Other) :2964
## do_wynajecia_przez liczba_pokoi rodzaj_nieruchomosci
## Agencja :11303 2 pokoje :6745 Dom : 1086
## Nie podano: 83 3 pokoje :3345 Inne : 97
## Właściciel: 2004 4 pokoje :1040 Mieszkanie:12207
## 5 pokoi : 467
## 6 lub więcej pokoi : 798
## Kawalerka lub garsoniera: 927
## Nie podano : 68
## wielkosc parking liczba_lazienek
## Min. : 1.00 Brak : 107 1 łazienka :6289
## 1st Qu.: 46.00 Garaż :3430 2 łazienki : 988
## Median : 58.00 Kryty :1365 3 łazienki : 143
## Mean : 87.65 Nie podano:6634 4 lub więcej łazienek: 57
## 3rd Qu.: 88.00 Ulica :1854 Nie podano :5913
## Max. :6000.00
##
## palacy przyjazne_zwierzakom liczba_wyrazow
## Nie: 1287 Nie: 1334 Min. : 2.0
## Tak:12103 Tak:12056 1st Qu.: 89.0
## Median :133.0
## Mean :140.5
## 3rd Qu.:171.0
## Max. :611.0
##
Ponownie skrajne wartości ceny i wielkości są podejrzane. Przypatrzmy się im bliżej.
plot(cena~wielkosc, mieszkania)
sprawdzenie11 <-
mieszkania %>%
filter(
cena <= 100000,
wielkosc <= 1000
)
plot(cena~wielkosc, sprawdzenie11)
sprawdzenie12 <-
mieszkania %>%
filter(
cena <= 10000,
wielkosc <= 200
)
plot(cena~wielkosc, sprawdzenie12)
sprawdzenie13 <-
mieszkania %>%
filter(
between(cena, 1000, 5000),
between(wielkosc, 20, 100)
)
plot(cena~wielkosc, sprawdzenie13)
sprawdzenie14 <-
mieszkania %>%
filter(
between(cena, 1000, 15000),
between(wielkosc, 20, 400)
)
plot(cena~wielkosc, sprawdzenie14)
sprawdzenie15 <-
mieszkania %>%
filter(
between(cena, 1000, 10000),
between(wielkosc, 20, 200)
)
plot(cena~wielkosc, sprawdzenie15)
sprawdzenie16 <-
mieszkania %>%
filter(
between(cena, 1000, 10000),
between(wielkosc, 20, 100)
)
plot(cena~wielkosc, sprawdzenie16)
Tym razem dane wyglądają znacznie bardziej obiecująco. Da się zauważyć korelację między wielkością mieszkania a ceną. Kawalerki zaczynają się od około 20 m^2. Duże 3-4 pokojowe mieszkania liczą sobie do 100 m^2. Skrajne wartości tej skali mają stosunek 1:4. W taki sam sposób dobrano widełki do cen. Są to typowe przedziały cen wynajmu i wielkości mieszkań.
dane <-
sprawdzenie13 %>%
select(-opis)
summary(dane)
## lokalizacja cena do_wynajecia_przez
## Mokotów :2626 Min. :1000 Agencja :8062
## Śródmieście :2251 1st Qu.:2300 Nie podano: 69
## Wola :1045 Median :2650 Właściciel:1874
## Praga Południe: 748 Mean :2843
## Ochota : 548 3rd Qu.:3300
## Ursynów : 536 Max. :5000
## (Other) :2251
## liczba_pokoi rodzaj_nieruchomosci wielkosc
## 2 pokoje :6590 Dom : 47 Min. : 20.00
## 3 pokoje :2280 Inne : 76 1st Qu.: 43.00
## 4 pokoje : 220 Mieszkanie:9882 Median : 52.00
## 5 pokoi : 5 Mean : 54.15
## 6 lub więcej pokoi : 1 3rd Qu.: 62.00
## Kawalerka lub garsoniera: 884 Max. :100.00
## Nie podano : 25
## parking liczba_lazienek palacy
## Brak : 93 1 łazienka :5902 Nie:1193
## Garaż :2758 2 łazienki : 451 Tak:8812
## Kryty : 574 3 łazienki : 1
## Nie podano:5024 4 lub więcej łazienek: 1
## Ulica :1556 Nie podano :3650
##
##
## przyjazne_zwierzakom liczba_wyrazow
## Nie:1241 Min. : 2.0
## Tak:8764 1st Qu.: 85.0
## Median :129.0
## Mean :134.4
## 3rd Qu.:167.0
## Max. :528.0
##
plot(cena~wielkosc, dane)
fit11 <- lm(cena~wielkosc, dane)
summary(fit11)
##
## Call:
## lm(formula = cena ~ wielkosc, data = dane)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2751.84 -397.47 -71.16 353.40 2337.61
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 943.1021 21.2184 44.45 <2e-16 ***
## wielkosc 35.0874 0.3761 93.28 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 595.1 on 10003 degrees of freedom
## Multiple R-squared: 0.4652, Adjusted R-squared: 0.4652
## F-statistic: 8702 on 1 and 10003 DF, p-value: < 2.2e-16
abline(fit11, col = "red", lwd = 2)
Zobaczmy jak cena zależy od pozostałych predyktorów.
fit12 <-
lm(cena~., dane)
summary(fit12)
##
## Call:
## lm(formula = cena ~ ., data = dane)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2396.82 -306.71 -41.21 265.44 2360.59
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 704.07025 100.83986 6.982
## lokalizacjaBiałołęka -237.87954 49.06485 -4.848
## lokalizacjaBielany 193.75822 33.80390 5.732
## lokalizacjaMokotów 626.75092 26.80746 23.380
## lokalizacjaOchota 515.49644 32.69096 15.769
## lokalizacjaPraga Północ 421.57712 48.98762 8.606
## lokalizacjaPraga Południe 244.85947 30.79142 7.952
## lokalizacjaRembertów -103.54603 175.54770 -0.590
## lokalizacjaŚródmieście 808.88225 27.17290 29.768
## lokalizacjaTargówek -71.46235 51.15987 -1.397
## lokalizacjaUrsus -127.28971 70.98582 -1.793
## lokalizacjaUrsynów 212.77260 32.69910 6.507
## lokalizacjaWawer -259.87870 68.24197 -3.808
## lokalizacjaWesoła -749.57663 175.97769 -4.259
## lokalizacjaWilanów 463.15588 34.79566 13.311
## lokalizacjaWłochy 192.77545 59.20619 3.256
## lokalizacjaWola 564.26670 29.31494 19.248
## lokalizacjaŻoliborz 529.07429 36.26477 14.589
## do_wynajecia_przezNie podano -39.40269 59.75994 -0.659
## do_wynajecia_przezWłaściciel -193.03556 15.51514 -12.442
## liczba_pokoi3 pokoje 189.35420 15.84874 11.948
## liczba_pokoi4 pokoje 243.86488 37.67650 6.473
## liczba_pokoi5 pokoi 192.41558 220.86949 0.871
## liczba_pokoi6 lub więcej pokoi 75.86677 493.20126 0.154
## liczba_pokoiKawalerka lub garsoniera -185.85131 19.56732 -9.498
## liczba_pokoiNie podano 7.33078 99.39017 0.074
## rodzaj_nieruchomosciInne -307.34257 94.54000 -3.251
## rodzaj_nieruchomosciMieszkanie -130.39173 76.08872 -1.714
## wielkosc 27.49387 0.49561 55.475
## parkingGaraż 250.91295 52.43018 4.786
## parkingKryty 49.78108 55.62628 0.895
## parkingNie podano -22.05660 51.94819 -0.425
## parkingUlica -68.65787 52.56456 -1.306
## liczba_lazienek2 łazienki 54.60075 25.91378 2.107
## liczba_lazienek3 łazienki -416.93398 491.30932 -0.849
## liczba_lazienek4 lub więcej łazienek -599.71339 491.39611 -1.220
## liczba_lazienekNie podano 208.91558 12.23168 17.080
## palacyTak 18.58975 20.93136 0.888
## przyjazne_zwierzakomTak -6.66947 18.91470 -0.353
## liczba_wyrazow 1.00732 0.07335 13.732
## Pr(>|t|)
## (Intercept) 3.09e-12 ***
## lokalizacjaBiałołęka 1.26e-06 ***
## lokalizacjaBielany 1.02e-08 ***
## lokalizacjaMokotów < 2e-16 ***
## lokalizacjaOchota < 2e-16 ***
## lokalizacjaPraga Północ < 2e-16 ***
## lokalizacjaPraga Południe 2.03e-15 ***
## lokalizacjaRembertów 0.555308
## lokalizacjaŚródmieście < 2e-16 ***
## lokalizacjaTargówek 0.162492
## lokalizacjaUrsus 0.072976 .
## lokalizacjaUrsynów 8.04e-11 ***
## lokalizacjaWawer 0.000141 ***
## lokalizacjaWesoła 2.07e-05 ***
## lokalizacjaWilanów < 2e-16 ***
## lokalizacjaWłochy 0.001134 **
## lokalizacjaWola < 2e-16 ***
## lokalizacjaŻoliborz < 2e-16 ***
## do_wynajecia_przezNie podano 0.509687
## do_wynajecia_przezWłaściciel < 2e-16 ***
## liczba_pokoi3 pokoje < 2e-16 ***
## liczba_pokoi4 pokoje 1.01e-10 ***
## liczba_pokoi5 pokoi 0.383681
## liczba_pokoi6 lub więcej pokoi 0.877751
## liczba_pokoiKawalerka lub garsoniera < 2e-16 ***
## liczba_pokoiNie podano 0.941205
## rodzaj_nieruchomosciInne 0.001154 **
## rodzaj_nieruchomosciMieszkanie 0.086619 .
## wielkosc < 2e-16 ***
## parkingGaraż 1.73e-06 ***
## parkingKryty 0.370851
## parkingNie podano 0.671146
## parkingUlica 0.191527
## liczba_lazienek2 łazienki 0.035141 *
## liczba_lazienek3 łazienki 0.396114
## liczba_lazienek4 lub więcej łazienek 0.222332
## liczba_lazienekNie podano < 2e-16 ***
## palacyTak 0.374493
## przyjazne_zwierzakomTak 0.724390
## liczba_wyrazow < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 490.8 on 9965 degrees of freedom
## Multiple R-squared: 0.6377, Adjusted R-squared: 0.6363
## F-statistic: 449.8 on 39 and 9965 DF, p-value: < 2.2e-16
plot(fit12)
## Warning: not plotting observations with leverage one:
## 4141
## Warning: not plotting observations with leverage one:
## 4141
## Warning in sqrt(crit * p * (1 - hh)/hh): NaNs produced
## Warning in sqrt(crit * p * (1 - hh)/hh): NaNs produced
Okazuje się, że predyktory palacy oraz przyjazne_zwierzakom nie są istotne w zbudowanym modelu. Dla uproszczenia go usuniemy te dwie kolumny. Pozostałe nieistotne parametry należą do grup czynników, z których część jest istotna, dlatego nie zostaną usunięte (należałoby wtedy usunąć też te istotne). Można zaobserwować, że stworzona nowa zmienna dotycząca liczby słów w ofercie jest bardzo istotnym predyktorem w naszym modelu.
fit13 <-
lm(cena~.-palacy-przyjazne_zwierzakom, dane)
summary(fit13)
##
## Call:
## lm(formula = cena ~ . - palacy - przyjazne_zwierzakom, data = dane)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2396.22 -304.85 -40.15 265.41 2365.51
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 712.1602 99.5419 7.154 9.00e-13
## lokalizacjaBiałołęka -237.9705 49.0467 -4.852 1.24e-06
## lokalizacjaBielany 194.5367 33.7906 5.757 8.81e-09
## lokalizacjaMokotów 627.6341 26.7809 23.436 < 2e-16
## lokalizacjaOchota 515.9436 32.6830 15.786 < 2e-16
## lokalizacjaPraga Północ 420.8601 48.9708 8.594 < 2e-16
## lokalizacjaPraga Południe 245.4484 30.7825 7.974 1.71e-15
## lokalizacjaRembertów -102.8265 175.5255 -0.586 0.558009
## lokalizacjaŚródmieście 809.8175 27.1509 29.827 < 2e-16
## lokalizacjaTargówek -71.7125 51.1552 -1.402 0.160988
## lokalizacjaUrsus -128.1804 70.8767 -1.808 0.070559
## lokalizacjaUrsynów 213.7893 32.6772 6.542 6.35e-11
## lokalizacjaWawer -261.5256 68.1980 -3.835 0.000126
## lokalizacjaWesoła -748.0420 175.9409 -4.252 2.14e-05
## lokalizacjaWilanów 464.4916 34.7410 13.370 < 2e-16
## lokalizacjaWłochy 195.0741 59.0832 3.302 0.000964
## lokalizacjaWola 564.9185 29.3026 19.279 < 2e-16
## lokalizacjaŻoliborz 529.1616 36.2569 14.595 < 2e-16
## do_wynajecia_przezNie podano -40.6126 59.7340 -0.680 0.496589
## do_wynajecia_przezWłaściciel -198.0321 14.1090 -14.036 < 2e-16
## liczba_pokoi3 pokoje 189.9214 15.8236 12.002 < 2e-16
## liczba_pokoi4 pokoje 244.6579 37.6529 6.498 8.54e-11
## liczba_pokoi5 pokoi 193.0140 220.8508 0.874 0.382163
## liczba_pokoi6 lub więcej pokoi 80.8178 493.1401 0.164 0.869826
## liczba_pokoiKawalerka lub garsoniera -187.1034 19.5130 -9.589 < 2e-16
## liczba_pokoiNie podano 7.7294 99.3604 0.078 0.937995
## rodzaj_nieruchomosciInne -304.8877 94.4584 -3.228 0.001252
## rodzaj_nieruchomosciMieszkanie -129.6030 76.0278 -1.705 0.088285
## wielkosc 27.4854 0.4944 55.592 < 2e-16
## parkingGaraż 253.6139 52.3288 4.847 1.28e-06
## parkingKryty 51.9306 55.5460 0.935 0.349857
## parkingNie podano -18.9926 51.7772 -0.367 0.713766
## parkingUlica -67.5128 52.5394 -1.285 0.198824
## liczba_lazienek2 łazienki 54.0467 25.9047 2.086 0.036970
## liczba_lazienek3 łazienki -417.1775 491.2795 -0.849 0.395810
## liczba_lazienek4 lub więcej łazienek -599.8718 491.3659 -1.221 0.222181
## liczba_lazienekNie podano 209.6856 12.1026 17.326 < 2e-16
## liczba_wyrazow 1.0032 0.0732 13.706 < 2e-16
##
## (Intercept) ***
## lokalizacjaBiałołęka ***
## lokalizacjaBielany ***
## lokalizacjaMokotów ***
## lokalizacjaOchota ***
## lokalizacjaPraga Północ ***
## lokalizacjaPraga Południe ***
## lokalizacjaRembertów
## lokalizacjaŚródmieście ***
## lokalizacjaTargówek
## lokalizacjaUrsus .
## lokalizacjaUrsynów ***
## lokalizacjaWawer ***
## lokalizacjaWesoła ***
## lokalizacjaWilanów ***
## lokalizacjaWłochy ***
## lokalizacjaWola ***
## lokalizacjaŻoliborz ***
## do_wynajecia_przezNie podano
## do_wynajecia_przezWłaściciel ***
## liczba_pokoi3 pokoje ***
## liczba_pokoi4 pokoje ***
## liczba_pokoi5 pokoi
## liczba_pokoi6 lub więcej pokoi
## liczba_pokoiKawalerka lub garsoniera ***
## liczba_pokoiNie podano
## rodzaj_nieruchomosciInne **
## rodzaj_nieruchomosciMieszkanie .
## wielkosc ***
## parkingGaraż ***
## parkingKryty
## parkingNie podano
## parkingUlica
## liczba_lazienek2 łazienki *
## liczba_lazienek3 łazienki
## liczba_lazienek4 lub więcej łazienek
## liczba_lazienekNie podano ***
## liczba_wyrazow ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 490.7 on 9967 degrees of freedom
## Multiple R-squared: 0.6377, Adjusted R-squared: 0.6364
## F-statistic: 474.2 on 37 and 9967 DF, p-value: < 2.2e-16
plot(fit13)
## Warning: not plotting observations with leverage one:
## 4141
## Warning: not plotting observations with leverage one:
## 4141
## Warning in sqrt(crit * p * (1 - hh)/hh): NaNs produced
## Warning in sqrt(crit * p * (1 - hh)/hh): NaNs produced
Spróbujmy wykorzystać interakcję miedzy dwoma predyktorami - lokalizacja i wielkosc.
fit14 <-
lm(cena~.+lokalizacja*wielkosc, dane)
summary(fit14)
##
## Call:
## lm(formula = cena ~ . + lokalizacja * wielkosc, data = dane)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2489.73 -298.90 -39.64 255.47 2367.05
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 1374.55688 144.83668 9.490
## lokalizacjaBiałołęka -82.90232 183.05073 -0.453
## lokalizacjaBielany 120.91408 131.16435 0.922
## lokalizacjaMokotów -184.33139 114.84130 -1.605
## lokalizacjaOchota 181.10415 127.48266 1.421
## lokalizacjaPraga Północ -399.76798 177.64268 -2.250
## lokalizacjaPraga Południe -269.50796 128.70292 -2.094
## lokalizacjaRembertów 109.74751 684.51929 0.160
## lokalizacjaŚródmieście 27.14971 114.14499 0.238
## lokalizacjaTargówek 53.77617 181.58811 0.296
## lokalizacjaUrsus -137.76178 270.28044 -0.510
## lokalizacjaUrsynów -399.80201 140.00798 -2.856
## lokalizacjaWawer -18.36094 216.11121 -0.085
## lokalizacjaWesoła -510.13982 596.12977 -0.856
## lokalizacjaWilanów -283.97696 138.16816 -2.055
## lokalizacjaWłochy 166.42562 194.93889 0.854
## lokalizacjaWola 211.05453 125.35235 1.684
## lokalizacjaŻoliborz -402.16764 138.89507 -2.895
## do_wynajecia_przezNie podano -49.92389 58.95881 -0.847
## do_wynajecia_przezWłaściciel -192.58799 15.35378 -12.543
## liczba_pokoi3 pokoje 190.24173 15.73718 12.089
## liczba_pokoi4 pokoje 329.77387 38.14501 8.645
## liczba_pokoi5 pokoi 134.36978 218.18204 0.616
## liczba_pokoi6 lub więcej pokoi -211.17161 490.57201 -0.430
## liczba_pokoiKawalerka lub garsoniera -203.51629 19.41928 -10.480
## liczba_pokoiNie podano -40.61121 98.35203 -0.413
## rodzaj_nieruchomosciInne -366.41945 94.60006 -3.873
## rodzaj_nieruchomosciMieszkanie -191.08330 76.83905 -2.487
## wielkosc 16.76707 1.89570 8.845
## parkingGaraż 253.57132 51.74185 4.901
## parkingKryty 52.72666 54.88575 0.961
## parkingNie podano -15.61763 51.26040 -0.305
## parkingUlica -61.23793 51.89480 -1.180
## liczba_lazienek2 łazienki 82.26306 25.76470 3.193
## liczba_lazienek3 łazienki -569.39599 484.81218 -1.174
## liczba_lazienek4 lub więcej łazienek -599.12457 484.59803 -1.236
## liczba_lazienekNie podano 199.87616 12.09508 16.525
## palacyTak 36.18454 20.67594 1.750
## przyjazne_zwierzakomTak -15.55707 18.71130 -0.831
## liczba_wyrazow 0.98732 0.07237 13.643
## lokalizacjaBiałołęka:wielkosc -3.59443 3.18289 -1.129
## lokalizacjaBielany:wielkosc 0.11296 2.27161 0.050
## lokalizacjaMokotów:wielkosc 14.26856 1.94057 7.353
## lokalizacjaOchota:wielkosc 5.45024 2.17239 2.509
## lokalizacjaPraga Północ:wielkosc 14.41046 3.02408 4.765
## lokalizacjaPraga Południe:wielkosc 8.76218 2.21566 3.955
## lokalizacjaRembertów:wielkosc -7.07025 14.22066 -0.497
## lokalizacjaŚródmieście:wielkosc 13.83146 1.93206 7.159
## lokalizacjaTargówek:wielkosc -3.52585 3.23411 -1.090
## lokalizacjaUrsus:wielkosc -0.12333 4.63532 -0.027
## lokalizacjaUrsynów:wielkosc 10.59094 2.32855 4.548
## lokalizacjaWawer:wielkosc -4.34830 3.54298 -1.227
## lokalizacjaWesoła:wielkosc -2.11969 8.53084 -0.248
## lokalizacjaWilanów:wielkosc 12.83874 2.28903 5.609
## lokalizacjaWłochy:wielkosc 0.84539 3.09373 0.273
## lokalizacjaWola:wielkosc 5.51794 2.18498 2.525
## lokalizacjaŻoliborz:wielkosc 16.57596 2.38374 6.954
## Pr(>|t|)
## (Intercept) < 2e-16 ***
## lokalizacjaBiałołęka 0.650636
## lokalizacjaBielany 0.356628
## lokalizacjaMokotów 0.108504
## lokalizacjaOchota 0.155459
## lokalizacjaPraga Północ 0.024445 *
## lokalizacjaPraga Południe 0.036282 *
## lokalizacjaRembertów 0.872626
## lokalizacjaŚródmieście 0.812000
## lokalizacjaTargówek 0.767127
## lokalizacjaUrsus 0.610273
## lokalizacjaUrsynów 0.004305 **
## lokalizacjaWawer 0.932294
## lokalizacjaWesoła 0.392155
## lokalizacjaWilanów 0.039876 *
## lokalizacjaWłochy 0.393274
## lokalizacjaWola 0.092273 .
## lokalizacjaŻoliborz 0.003794 **
## do_wynajecia_przezNie podano 0.397150
## do_wynajecia_przezWłaściciel < 2e-16 ***
## liczba_pokoi3 pokoje < 2e-16 ***
## liczba_pokoi4 pokoje < 2e-16 ***
## liczba_pokoi5 pokoi 0.538000
## liczba_pokoi6 lub więcej pokoi 0.666870
## liczba_pokoiKawalerka lub garsoniera < 2e-16 ***
## liczba_pokoiNie podano 0.679676
## rodzaj_nieruchomosciInne 0.000108 ***
## rodzaj_nieruchomosciMieszkanie 0.012906 *
## wielkosc < 2e-16 ***
## parkingGaraż 9.70e-07 ***
## parkingKryty 0.336745
## parkingNie podano 0.760622
## parkingUlica 0.238013
## liczba_lazienek2 łazienki 0.001413 **
## liczba_lazienek3 łazienki 0.240236
## liczba_lazienek4 lub więcej łazienek 0.216364
## liczba_lazienekNie podano < 2e-16 ***
## palacyTak 0.080135 .
## przyjazne_zwierzakomTak 0.405753
## liczba_wyrazow < 2e-16 ***
## lokalizacjaBiałołęka:wielkosc 0.258799
## lokalizacjaBielany:wielkosc 0.960342
## lokalizacjaMokotów:wielkosc 2.09e-13 ***
## lokalizacjaOchota:wielkosc 0.012128 *
## lokalizacjaPraga Północ:wielkosc 1.91e-06 ***
## lokalizacjaPraga Południe:wielkosc 7.72e-05 ***
## lokalizacjaRembertów:wielkosc 0.619072
## lokalizacjaŚródmieście:wielkosc 8.71e-13 ***
## lokalizacjaTargówek:wielkosc 0.275648
## lokalizacjaUrsus:wielkosc 0.978775
## lokalizacjaUrsynów:wielkosc 5.47e-06 ***
## lokalizacjaWawer:wielkosc 0.219739
## lokalizacjaWesoła:wielkosc 0.803773
## lokalizacjaWilanów:wielkosc 2.09e-08 ***
## lokalizacjaWłochy:wielkosc 0.784659
## lokalizacjaWola:wielkosc 0.011572 *
## lokalizacjaŻoliborz:wielkosc 3.78e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 483.6 on 9948 degrees of freedom
## Multiple R-squared: 0.6488, Adjusted R-squared: 0.6468
## F-statistic: 328.2 on 56 and 9948 DF, p-value: < 2.2e-16
plot(fit14)
## Warning: not plotting observations with leverage one:
## 4141
## Warning: not plotting observations with leverage one:
## 4141
## Warning in sqrt(crit * p * (1 - hh)/hh): NaNs produced
## Warning in sqrt(crit * p * (1 - hh)/hh): NaNs produced
Okazuje się, że ta zależność jest istotna dla modelu. Otrzymujemy większe o 1.5% Adjusted R^2.
Spróbujmy teraz dopasować model nieliniowy. Najpierw od samej wielkości mieszkania.
plot(cena~wielkosc, dane)
fit21 <-
lm(cena~wielkosc+I(wielkosc^2), dane)
summary(fit21)
##
## Call:
## lm(formula = cena ~ wielkosc + I(wielkosc^2), data = dane)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2564.89 -391.64 -62.57 357.77 2314.42
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 482.79763 62.61387 7.711 1.37e-14 ***
## wielkosc 51.80885 2.17341 23.838 < 2e-16 ***
## I(wielkosc^2) -0.13988 0.01791 -7.811 6.25e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 593.4 on 10002 degrees of freedom
## Multiple R-squared: 0.4685, Adjusted R-squared: 0.4684
## F-statistic: 4408 on 2 and 10002 DF, p-value: < 2.2e-16
points(dane$wielkosc, fitted(fit21), col = "blue", pch = 20)
abline(fit11, col = "red", lwd = 2)
Podsumowanie komunikuje nam, że wielkość w drugiej potędze jest istotnym czynnikiem. Jednakże widać na powyższym wykresie i po wartości Adjusted R^2 jak nieznacznie różnią się od siebie krzywe predykcyjne.
Z ciekawości sprawdźmy jak będzie wyglądał model dla jeszcze większego stopnia wielomianu.
plot(cena~wielkosc, dane)
fit22 <-
lm(cena~poly(wielkosc, 6), dane)
summary(fit22)
##
## Call:
## lm(formula = cena ~ poly(wielkosc, 6), data = dane)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2218.47 -390.43 -52.45 351.51 2332.68
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2843.019 5.905 481.430 < 2e-16 ***
## poly(wielkosc, 6)1 55517.286 590.684 93.988 < 2e-16 ***
## poly(wielkosc, 6)2 -4634.669 590.684 -7.846 4.72e-15 ***
## poly(wielkosc, 6)3 -3666.422 590.684 -6.207 5.61e-10 ***
## poly(wielkosc, 6)4 -4240.237 590.684 -7.179 7.55e-13 ***
## poly(wielkosc, 6)5 -1119.607 590.684 -1.895 0.0581 .
## poly(wielkosc, 6)6 703.338 590.684 1.191 0.2338
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 590.7 on 9998 degrees of freedom
## Multiple R-squared: 0.4735, Adjusted R-squared: 0.4732
## F-statistic: 1498 on 6 and 9998 DF, p-value: < 2.2e-16
points(dane$wielkosc, fitted(fit22), col = "green", pch = 20)
points(dane$wielkosc, fitted(fit21), col = "blue", pch = 20)
abline(fit11, col = "red", lwd = 2)
# contrast() - for qualitative predictors
Możemy zauważyć, że współczynnik 5 stopnia nie jest istotny dla modelu. Dodatkowo funkcja w prawym przedziale dziedziny zaczyna zbyt silnie dopasowywać się do danych (zwłaszcza na samym krańcu).
Tym razem do wyznaczenia błędu naszego modelu posłużymy się metodą kroswalidacji. W tym celu załadujemy odpowiednią bibliotekę ułatwiającą dalszą pracę.
library(boot)
Najpierw wykorzystamy LOOCV czyli Leave One Out Cross Validation.
fit31 <- glm(cena~wielkosc, data = dane)
# LOOCV <- cv.glm(dane, fit31)
# save(LOOCV, file = "LOOCV.Rda")
LOOCV <- get(load("LOOCV.Rda"))
LOOCV$delta
## [1] 354282 354282
LOOCV tworzy tyle modeli ile jest obserwacji w zestawie danych, za każdym razem pomijając jedeną z nich. Następnie określa błąd sprawdzając różnicę między pominiętą obserwacją a jej przewidywaniem wynikającym z powstałego modelu. Błąd ten określa wartość delta zwróconego obiektu. Pierwsza liczba jest po prostu błędem wyliczonym na podstawie całego danych, druga zaś koryguje ten błąd ze względu na fakt, iż zestaw danych uczących był mniejszy (w tym wypadku zawsze o jedną pozycję). W tym wypadku nie widać żadnej różnicy. Efekt ten będzie bardziej widoczny dla K krotnej kroswalidacji.
Metoda cv.glm jest bardzo powolna. Dlatego efekt jej działania zapisałem wcześniej do pliku, który teraz zostaje wczytany. Czas wykonywania tej operacji trwał kilka minut. Dla znacznego przyspieszenia działania tej funkcji posłużę się następującą formułą uwzględniającą wpływ i-tej obserwacji na dopasowanie do niej krzywej.
loocv.glm <-
function(fit) {
h <- lm.influence(fit)$h
mean((residuals(fit)/(1-h))^2)
}
loocv.glm(fit31)
## [1] 354282
Powodem dla którego metoda cv.glm nie korzysta docelowo z tej formuły jest fakt, że nie funkcjonuje ona w wypadku regresji logistycznej.
Teraz sprawdzimy jakie błędy będą towarzyszyć wielomianom kolejnych stopni i czy opłaca się je zastosować.
cvBlad <- rep(0, 6)
stopien <- 1:6
for (d in stopien) {
fit32 <- glm(cena~poly(wielkosc, d), data = dane)
cvBlad[d] <- loocv.glm(fit32)
}
# stopien <- 1:6
# cvBlad <-
# stopien %>%
# sapply(
# function(x) {
# fit32 <- glm(cena~poly(wielkosc, x), data = dane)
# loocv.glm(fit32)
# }
# )
plot(stopien, cvBlad, type = "b")
Na wykresie można zauważyć, że błąd przestaje maleć dla wielmianu 4 stopnia.
Teraz spróbujemy przeprowadzić K krotną kroswalidację. Standardowo za K przyjmuje się wartości 5 lub 10. W tym wypadku przyjmę tę większą.
cvBladK10 <-
stopien %>%
sapply(
function(x) {
cv.glm(dane, fit32, K = 10)$delta[1]
}
)
plot(stopien, cvBlad, type = "b")
lines(stopien, cvBladK10, type = "b", col = "red")
K krotna kroswalidacja jest bardziej stabilną metodą. W tym przypadku widać jak podpowiada nam, że już w zasadzie funkcja liniowa jest wystarczającym modelem.
Powyższy przykład pozwolił nam określić jaki stopień wielomianu jednego predyktora będzie odpowiedni dla naszego modelu. Tym razem chcemy jednak dobrać odpowiedni model z wieloma predyktorami. Jakie są nasze opcje?
Metoda ta porównuje wszytkie możliwe modele regresji o wszystkich możliwych wielkościach (liczbie biorących udział w tworzeniu modelu predyktorów) w poszukiwaniu najlepszego modelu dla każdego z rozmiarów. W sumie wykonuje 2^p modeli, gdzie p to lizcba predyktorów (w naszym przypadku 2^11 czyli 2048) W osiągnięciu tego celu pomoże nam biblioteka leaps.
library(leaps)
fit41 <- regsubsets(cena~., dane, nvmax = 11)
sum41 <- summary(fit41)
sum41
## Subset selection object
## Call: regsubsets.formula(cena ~ ., dane, nvmax = 11)
## 39 Variables (and intercept)
## Forced in Forced out
## lokalizacjaBiałołęka FALSE FALSE
## lokalizacjaBielany FALSE FALSE
## lokalizacjaMokotów FALSE FALSE
## lokalizacjaOchota FALSE FALSE
## lokalizacjaPraga Północ FALSE FALSE
## lokalizacjaPraga Południe FALSE FALSE
## lokalizacjaRembertów FALSE FALSE
## lokalizacjaŚródmieście FALSE FALSE
## lokalizacjaTargówek FALSE FALSE
## lokalizacjaUrsus FALSE FALSE
## lokalizacjaUrsynów FALSE FALSE
## lokalizacjaWawer FALSE FALSE
## lokalizacjaWesoła FALSE FALSE
## lokalizacjaWilanów FALSE FALSE
## lokalizacjaWłochy FALSE FALSE
## lokalizacjaWola FALSE FALSE
## lokalizacjaŻoliborz FALSE FALSE
## do_wynajecia_przezNie podano FALSE FALSE
## do_wynajecia_przezWłaściciel FALSE FALSE
## liczba_pokoi3 pokoje FALSE FALSE
## liczba_pokoi4 pokoje FALSE FALSE
## liczba_pokoi5 pokoi FALSE FALSE
## liczba_pokoi6 lub więcej pokoi FALSE FALSE
## liczba_pokoiKawalerka lub garsoniera FALSE FALSE
## liczba_pokoiNie podano FALSE FALSE
## rodzaj_nieruchomosciInne FALSE FALSE
## rodzaj_nieruchomosciMieszkanie FALSE FALSE
## wielkosc FALSE FALSE
## parkingGaraż FALSE FALSE
## parkingKryty FALSE FALSE
## parkingNie podano FALSE FALSE
## parkingUlica FALSE FALSE
## liczba_lazienek2 łazienki FALSE FALSE
## liczba_lazienek3 łazienki FALSE FALSE
## liczba_lazienek4 lub więcej łazienek FALSE FALSE
## liczba_lazienekNie podano FALSE FALSE
## palacyTak FALSE FALSE
## przyjazne_zwierzakomTak FALSE FALSE
## liczba_wyrazow FALSE FALSE
## 1 subsets of each size up to 11
## Selection Algorithm: exhaustive
## lokalizacjaBiałołęka lokalizacjaBielany lokalizacjaMokotów
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) " " " " " "
## 4 ( 1 ) " " " " "*"
## 5 ( 1 ) " " " " "*"
## 6 ( 1 ) " " " " "*"
## 7 ( 1 ) " " " " "*"
## 8 ( 1 ) " " " " "*"
## 9 ( 1 ) " " " " "*"
## 10 ( 1 ) " " " " "*"
## 11 ( 1 ) " " " " "*"
## lokalizacjaOchota lokalizacjaPraga Północ
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) "*" " "
## 10 ( 1 ) "*" " "
## 11 ( 1 ) "*" " "
## lokalizacjaPraga Południe lokalizacjaRembertów
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) " " " "
## 11 ( 1 ) " " " "
## lokalizacjaŚródmieście lokalizacjaTargówek lokalizacjaUrsus
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) "*" " " " "
## 4 ( 1 ) "*" " " " "
## 5 ( 1 ) "*" " " " "
## 6 ( 1 ) "*" " " " "
## 7 ( 1 ) "*" " " " "
## 8 ( 1 ) "*" " " " "
## 9 ( 1 ) "*" " " " "
## 10 ( 1 ) "*" " " " "
## 11 ( 1 ) "*" " " " "
## lokalizacjaUrsynów lokalizacjaWawer lokalizacjaWesoła
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) " " " " " "
## 4 ( 1 ) " " " " " "
## 5 ( 1 ) " " " " " "
## 6 ( 1 ) " " " " " "
## 7 ( 1 ) " " " " " "
## 8 ( 1 ) " " " " " "
## 9 ( 1 ) " " " " " "
## 10 ( 1 ) " " " " " "
## 11 ( 1 ) " " " " " "
## lokalizacjaWilanów lokalizacjaWłochy lokalizacjaWola
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) " " " " " "
## 4 ( 1 ) " " " " " "
## 5 ( 1 ) " " " " "*"
## 6 ( 1 ) " " " " "*"
## 7 ( 1 ) " " " " "*"
## 8 ( 1 ) " " " " "*"
## 9 ( 1 ) " " " " "*"
## 10 ( 1 ) " " " " "*"
## 11 ( 1 ) "*" " " "*"
## lokalizacjaŻoliborz do_wynajecia_przezNie podano
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) "*" " "
## 11 ( 1 ) "*" " "
## do_wynajecia_przezWłaściciel liczba_pokoi3 pokoje
## 1 ( 1 ) " " " "
## 2 ( 1 ) "*" " "
## 3 ( 1 ) "*" " "
## 4 ( 1 ) "*" " "
## 5 ( 1 ) "*" " "
## 6 ( 1 ) "*" " "
## 7 ( 1 ) "*" " "
## 8 ( 1 ) "*" " "
## 9 ( 1 ) "*" " "
## 10 ( 1 ) "*" " "
## 11 ( 1 ) "*" " "
## liczba_pokoi4 pokoje liczba_pokoi5 pokoi
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) " " " "
## 11 ( 1 ) " " " "
## liczba_pokoi6 lub więcej pokoi
## 1 ( 1 ) " "
## 2 ( 1 ) " "
## 3 ( 1 ) " "
## 4 ( 1 ) " "
## 5 ( 1 ) " "
## 6 ( 1 ) " "
## 7 ( 1 ) " "
## 8 ( 1 ) " "
## 9 ( 1 ) " "
## 10 ( 1 ) " "
## 11 ( 1 ) " "
## liczba_pokoiKawalerka lub garsoniera liczba_pokoiNie podano
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) " " " "
## 11 ( 1 ) " " " "
## rodzaj_nieruchomosciInne rodzaj_nieruchomosciMieszkanie wielkosc
## 1 ( 1 ) " " " " "*"
## 2 ( 1 ) " " " " "*"
## 3 ( 1 ) " " " " "*"
## 4 ( 1 ) " " " " "*"
## 5 ( 1 ) " " " " "*"
## 6 ( 1 ) " " " " "*"
## 7 ( 1 ) " " " " "*"
## 8 ( 1 ) " " " " "*"
## 9 ( 1 ) " " " " "*"
## 10 ( 1 ) " " " " "*"
## 11 ( 1 ) " " " " "*"
## parkingGaraż parkingKryty parkingNie podano parkingUlica
## 1 ( 1 ) " " " " " " " "
## 2 ( 1 ) " " " " " " " "
## 3 ( 1 ) " " " " " " " "
## 4 ( 1 ) " " " " " " " "
## 5 ( 1 ) " " " " " " " "
## 6 ( 1 ) "*" " " " " " "
## 7 ( 1 ) "*" " " " " " "
## 8 ( 1 ) "*" " " " " " "
## 9 ( 1 ) "*" " " " " " "
## 10 ( 1 ) "*" " " " " " "
## 11 ( 1 ) "*" " " " " " "
## liczba_lazienek2 łazienki liczba_lazienek3 łazienki
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) " " " "
## 11 ( 1 ) " " " "
## liczba_lazienek4 lub więcej łazienek liczba_lazienekNie podano
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " "*"
## 8 ( 1 ) " " "*"
## 9 ( 1 ) " " "*"
## 10 ( 1 ) " " "*"
## 11 ( 1 ) " " "*"
## palacyTak przyjazne_zwierzakomTak liczba_wyrazow
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) " " " " " "
## 4 ( 1 ) " " " " " "
## 5 ( 1 ) " " " " " "
## 6 ( 1 ) " " " " " "
## 7 ( 1 ) " " " " " "
## 8 ( 1 ) " " " " "*"
## 9 ( 1 ) " " " " "*"
## 10 ( 1 ) " " " " "*"
## 11 ( 1 ) " " " " "*"
plot(sum41$cp, xlab = "Liczba predyktorów", ylab = "Cp")
points(11, sum41$cp[11], pch = 20, col = "red")
plot(fit41, scale = "Cp")
coef(fit41, 11)
## (Intercept) lokalizacjaMokotów
## 450.545913 476.235032
## lokalizacjaOchota lokalizacjaŚródmieście
## 349.124397 649.739130
## lokalizacjaWilanów lokalizacjaWola
## 310.623299 423.324692
## lokalizacjaŻoliborz do_wynajecia_przezWłaściciel
## 394.000726 -222.266641
## wielkosc parkingGaraż
## 32.679045 271.762260
## liczba_lazienekNie podano liczba_wyrazow
## 209.638385 1.130164
Niestety, w tym wypadku nie widać czym charakteryzuje się ta metoda. Nie zakłada ona zagnieżdżania podzbiorów predyktorów. Zagnieżdzanie polega na tym, że każdy kolejny większy model musi opierać się na czynnikach wchodzących w skład poprzedniego modelu. Tutaj mobłoby dojść do sytuacji, gdzie dla kilku pierwszych podzbiorów przy konkretnym czynniku występują gwiazdki, następnie zaś nie pojawiają się.
Cp jest miarą błędu predykcji. Jak widać w tym przypadku najmniejszy błąd występuje dla modelu o największej liczbie predyktorów. Wcale nie musiało tak być i z większą liczbą czynników błąd mógłby zacząć rosnąć.
Ta metodą jest jest “chciwa” w tym sensie, że zagnieżdza kolejne podzbiory czynników. Nie tworzy zatem każdej możliwej kombinacji predyktorów. Już raz dobrany czynnik wykorzystywany jest w następnym modelu. Przy dobieraniu kolejnego predyktora metoda ta dobiera najlepszą opcję porównując tylko p modeli. Zatem ogółem liczba operacji wynosi około (p^2)/2 (w naszym przypadku około 60, czyli tylko 3% w porównaniu z poprzednią metodą.
fit42 <- regsubsets(cena~., dane, nvmax = 11, method = "forward")
sum42 <- summary(fit42)
sum42
## Subset selection object
## Call: regsubsets.formula(cena ~ ., dane, nvmax = 11, method = "forward")
## 39 Variables (and intercept)
## Forced in Forced out
## lokalizacjaBiałołęka FALSE FALSE
## lokalizacjaBielany FALSE FALSE
## lokalizacjaMokotów FALSE FALSE
## lokalizacjaOchota FALSE FALSE
## lokalizacjaPraga Północ FALSE FALSE
## lokalizacjaPraga Południe FALSE FALSE
## lokalizacjaRembertów FALSE FALSE
## lokalizacjaŚródmieście FALSE FALSE
## lokalizacjaTargówek FALSE FALSE
## lokalizacjaUrsus FALSE FALSE
## lokalizacjaUrsynów FALSE FALSE
## lokalizacjaWawer FALSE FALSE
## lokalizacjaWesoła FALSE FALSE
## lokalizacjaWilanów FALSE FALSE
## lokalizacjaWłochy FALSE FALSE
## lokalizacjaWola FALSE FALSE
## lokalizacjaŻoliborz FALSE FALSE
## do_wynajecia_przezNie podano FALSE FALSE
## do_wynajecia_przezWłaściciel FALSE FALSE
## liczba_pokoi3 pokoje FALSE FALSE
## liczba_pokoi4 pokoje FALSE FALSE
## liczba_pokoi5 pokoi FALSE FALSE
## liczba_pokoi6 lub więcej pokoi FALSE FALSE
## liczba_pokoiKawalerka lub garsoniera FALSE FALSE
## liczba_pokoiNie podano FALSE FALSE
## rodzaj_nieruchomosciInne FALSE FALSE
## rodzaj_nieruchomosciMieszkanie FALSE FALSE
## wielkosc FALSE FALSE
## parkingGaraż FALSE FALSE
## parkingKryty FALSE FALSE
## parkingNie podano FALSE FALSE
## parkingUlica FALSE FALSE
## liczba_lazienek2 łazienki FALSE FALSE
## liczba_lazienek3 łazienki FALSE FALSE
## liczba_lazienek4 lub więcej łazienek FALSE FALSE
## liczba_lazienekNie podano FALSE FALSE
## palacyTak FALSE FALSE
## przyjazne_zwierzakomTak FALSE FALSE
## liczba_wyrazow FALSE FALSE
## 1 subsets of each size up to 11
## Selection Algorithm: forward
## lokalizacjaBiałołęka lokalizacjaBielany lokalizacjaMokotów
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) " " " " " "
## 4 ( 1 ) " " " " "*"
## 5 ( 1 ) " " " " "*"
## 6 ( 1 ) " " " " "*"
## 7 ( 1 ) " " " " "*"
## 8 ( 1 ) " " " " "*"
## 9 ( 1 ) " " " " "*"
## 10 ( 1 ) " " " " "*"
## 11 ( 1 ) " " " " "*"
## lokalizacjaOchota lokalizacjaPraga Północ
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) "*" " "
## 10 ( 1 ) "*" " "
## 11 ( 1 ) "*" " "
## lokalizacjaPraga Południe lokalizacjaRembertów
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) " " " "
## 11 ( 1 ) " " " "
## lokalizacjaŚródmieście lokalizacjaTargówek lokalizacjaUrsus
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) "*" " " " "
## 4 ( 1 ) "*" " " " "
## 5 ( 1 ) "*" " " " "
## 6 ( 1 ) "*" " " " "
## 7 ( 1 ) "*" " " " "
## 8 ( 1 ) "*" " " " "
## 9 ( 1 ) "*" " " " "
## 10 ( 1 ) "*" " " " "
## 11 ( 1 ) "*" " " " "
## lokalizacjaUrsynów lokalizacjaWawer lokalizacjaWesoła
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) " " " " " "
## 4 ( 1 ) " " " " " "
## 5 ( 1 ) " " " " " "
## 6 ( 1 ) " " " " " "
## 7 ( 1 ) " " " " " "
## 8 ( 1 ) " " " " " "
## 9 ( 1 ) " " " " " "
## 10 ( 1 ) " " " " " "
## 11 ( 1 ) " " " " " "
## lokalizacjaWilanów lokalizacjaWłochy lokalizacjaWola
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) " " " " " "
## 4 ( 1 ) " " " " " "
## 5 ( 1 ) " " " " "*"
## 6 ( 1 ) " " " " "*"
## 7 ( 1 ) " " " " "*"
## 8 ( 1 ) " " " " "*"
## 9 ( 1 ) " " " " "*"
## 10 ( 1 ) " " " " "*"
## 11 ( 1 ) "*" " " "*"
## lokalizacjaŻoliborz do_wynajecia_przezNie podano
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) "*" " "
## 11 ( 1 ) "*" " "
## do_wynajecia_przezWłaściciel liczba_pokoi3 pokoje
## 1 ( 1 ) " " " "
## 2 ( 1 ) "*" " "
## 3 ( 1 ) "*" " "
## 4 ( 1 ) "*" " "
## 5 ( 1 ) "*" " "
## 6 ( 1 ) "*" " "
## 7 ( 1 ) "*" " "
## 8 ( 1 ) "*" " "
## 9 ( 1 ) "*" " "
## 10 ( 1 ) "*" " "
## 11 ( 1 ) "*" " "
## liczba_pokoi4 pokoje liczba_pokoi5 pokoi
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) " " " "
## 11 ( 1 ) " " " "
## liczba_pokoi6 lub więcej pokoi
## 1 ( 1 ) " "
## 2 ( 1 ) " "
## 3 ( 1 ) " "
## 4 ( 1 ) " "
## 5 ( 1 ) " "
## 6 ( 1 ) " "
## 7 ( 1 ) " "
## 8 ( 1 ) " "
## 9 ( 1 ) " "
## 10 ( 1 ) " "
## 11 ( 1 ) " "
## liczba_pokoiKawalerka lub garsoniera liczba_pokoiNie podano
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) " " " "
## 11 ( 1 ) " " " "
## rodzaj_nieruchomosciInne rodzaj_nieruchomosciMieszkanie wielkosc
## 1 ( 1 ) " " " " "*"
## 2 ( 1 ) " " " " "*"
## 3 ( 1 ) " " " " "*"
## 4 ( 1 ) " " " " "*"
## 5 ( 1 ) " " " " "*"
## 6 ( 1 ) " " " " "*"
## 7 ( 1 ) " " " " "*"
## 8 ( 1 ) " " " " "*"
## 9 ( 1 ) " " " " "*"
## 10 ( 1 ) " " " " "*"
## 11 ( 1 ) " " " " "*"
## parkingGaraż parkingKryty parkingNie podano parkingUlica
## 1 ( 1 ) " " " " " " " "
## 2 ( 1 ) " " " " " " " "
## 3 ( 1 ) " " " " " " " "
## 4 ( 1 ) " " " " " " " "
## 5 ( 1 ) " " " " " " " "
## 6 ( 1 ) "*" " " " " " "
## 7 ( 1 ) "*" " " " " " "
## 8 ( 1 ) "*" " " " " " "
## 9 ( 1 ) "*" " " " " " "
## 10 ( 1 ) "*" " " " " " "
## 11 ( 1 ) "*" " " " " " "
## liczba_lazienek2 łazienki liczba_lazienek3 łazienki
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) " " " "
## 11 ( 1 ) " " " "
## liczba_lazienek4 lub więcej łazienek liczba_lazienekNie podano
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " "*"
## 8 ( 1 ) " " "*"
## 9 ( 1 ) " " "*"
## 10 ( 1 ) " " "*"
## 11 ( 1 ) " " "*"
## palacyTak przyjazne_zwierzakomTak liczba_wyrazow
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) " " " " " "
## 4 ( 1 ) " " " " " "
## 5 ( 1 ) " " " " " "
## 6 ( 1 ) " " " " " "
## 7 ( 1 ) " " " " " "
## 8 ( 1 ) " " " " "*"
## 9 ( 1 ) " " " " "*"
## 10 ( 1 ) " " " " "*"
## 11 ( 1 ) " " " " "*"
plot(sum42$cp, xlab = "Liczba predyktorów", ylab = "Cp")
points(11, sum42$cp[11], pch = 20, col = "red")
plot(fit42, scale = "Cp")
coef(fit42, 11)
## (Intercept) lokalizacjaMokotów
## 450.545913 476.235032
## lokalizacjaOchota lokalizacjaŚródmieście
## 349.124397 649.739130
## lokalizacjaWilanów lokalizacjaWola
## 310.623299 423.324692
## lokalizacjaŻoliborz do_wynajecia_przezWłaściciel
## 394.000726 -222.266641
## wielkosc parkingGaraż
## 32.679045 271.762260
## liczba_lazienekNie podano liczba_wyrazow
## 209.638385 1.130164
Metoda ta różni się od FSS tym, że zaczyna porównywać modele zbudowane na wszystkich predyktorach i z każdym kolejnym krokiem odejmuję jeden z nich (najmniej istotny) z zestawu. Minusem tej metody jest to, że nie można użyć jej na zestawie danych gdzie występuje więcej kolumn niż wierszy.
fit43 <- regsubsets(cena~., dane, nvmax = 11, method = "backward")
sum43 <- summary(fit43)
sum43
## Subset selection object
## Call: regsubsets.formula(cena ~ ., dane, nvmax = 11, method = "backward")
## 39 Variables (and intercept)
## Forced in Forced out
## lokalizacjaBiałołęka FALSE FALSE
## lokalizacjaBielany FALSE FALSE
## lokalizacjaMokotów FALSE FALSE
## lokalizacjaOchota FALSE FALSE
## lokalizacjaPraga Północ FALSE FALSE
## lokalizacjaPraga Południe FALSE FALSE
## lokalizacjaRembertów FALSE FALSE
## lokalizacjaŚródmieście FALSE FALSE
## lokalizacjaTargówek FALSE FALSE
## lokalizacjaUrsus FALSE FALSE
## lokalizacjaUrsynów FALSE FALSE
## lokalizacjaWawer FALSE FALSE
## lokalizacjaWesoła FALSE FALSE
## lokalizacjaWilanów FALSE FALSE
## lokalizacjaWłochy FALSE FALSE
## lokalizacjaWola FALSE FALSE
## lokalizacjaŻoliborz FALSE FALSE
## do_wynajecia_przezNie podano FALSE FALSE
## do_wynajecia_przezWłaściciel FALSE FALSE
## liczba_pokoi3 pokoje FALSE FALSE
## liczba_pokoi4 pokoje FALSE FALSE
## liczba_pokoi5 pokoi FALSE FALSE
## liczba_pokoi6 lub więcej pokoi FALSE FALSE
## liczba_pokoiKawalerka lub garsoniera FALSE FALSE
## liczba_pokoiNie podano FALSE FALSE
## rodzaj_nieruchomosciInne FALSE FALSE
## rodzaj_nieruchomosciMieszkanie FALSE FALSE
## wielkosc FALSE FALSE
## parkingGaraż FALSE FALSE
## parkingKryty FALSE FALSE
## parkingNie podano FALSE FALSE
## parkingUlica FALSE FALSE
## liczba_lazienek2 łazienki FALSE FALSE
## liczba_lazienek3 łazienki FALSE FALSE
## liczba_lazienek4 lub więcej łazienek FALSE FALSE
## liczba_lazienekNie podano FALSE FALSE
## palacyTak FALSE FALSE
## przyjazne_zwierzakomTak FALSE FALSE
## liczba_wyrazow FALSE FALSE
## 1 subsets of each size up to 11
## Selection Algorithm: backward
## lokalizacjaBiałołęka lokalizacjaBielany lokalizacjaMokotów
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) " " " " " "
## 4 ( 1 ) " " " " "*"
## 5 ( 1 ) " " " " "*"
## 6 ( 1 ) " " " " "*"
## 7 ( 1 ) " " " " "*"
## 8 ( 1 ) " " " " "*"
## 9 ( 1 ) " " " " "*"
## 10 ( 1 ) " " " " "*"
## 11 ( 1 ) " " " " "*"
## lokalizacjaOchota lokalizacjaPraga Północ
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) "*" " "
## 10 ( 1 ) "*" " "
## 11 ( 1 ) "*" " "
## lokalizacjaPraga Południe lokalizacjaRembertów
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) " " " "
## 11 ( 1 ) " " " "
## lokalizacjaŚródmieście lokalizacjaTargówek lokalizacjaUrsus
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) "*" " " " "
## 4 ( 1 ) "*" " " " "
## 5 ( 1 ) "*" " " " "
## 6 ( 1 ) "*" " " " "
## 7 ( 1 ) "*" " " " "
## 8 ( 1 ) "*" " " " "
## 9 ( 1 ) "*" " " " "
## 10 ( 1 ) "*" " " " "
## 11 ( 1 ) "*" " " " "
## lokalizacjaUrsynów lokalizacjaWawer lokalizacjaWesoła
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) " " " " " "
## 4 ( 1 ) " " " " " "
## 5 ( 1 ) " " " " " "
## 6 ( 1 ) " " " " " "
## 7 ( 1 ) " " " " " "
## 8 ( 1 ) " " " " " "
## 9 ( 1 ) " " " " " "
## 10 ( 1 ) " " " " " "
## 11 ( 1 ) " " " " " "
## lokalizacjaWilanów lokalizacjaWłochy lokalizacjaWola
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) " " " " " "
## 4 ( 1 ) " " " " " "
## 5 ( 1 ) " " " " "*"
## 6 ( 1 ) " " " " "*"
## 7 ( 1 ) " " " " "*"
## 8 ( 1 ) " " " " "*"
## 9 ( 1 ) " " " " "*"
## 10 ( 1 ) " " " " "*"
## 11 ( 1 ) "*" " " "*"
## lokalizacjaŻoliborz do_wynajecia_przezNie podano
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) "*" " "
## 11 ( 1 ) "*" " "
## do_wynajecia_przezWłaściciel liczba_pokoi3 pokoje
## 1 ( 1 ) " " " "
## 2 ( 1 ) "*" " "
## 3 ( 1 ) "*" " "
## 4 ( 1 ) "*" " "
## 5 ( 1 ) "*" " "
## 6 ( 1 ) "*" " "
## 7 ( 1 ) "*" " "
## 8 ( 1 ) "*" " "
## 9 ( 1 ) "*" " "
## 10 ( 1 ) "*" " "
## 11 ( 1 ) "*" " "
## liczba_pokoi4 pokoje liczba_pokoi5 pokoi
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) " " " "
## 11 ( 1 ) " " " "
## liczba_pokoi6 lub więcej pokoi
## 1 ( 1 ) " "
## 2 ( 1 ) " "
## 3 ( 1 ) " "
## 4 ( 1 ) " "
## 5 ( 1 ) " "
## 6 ( 1 ) " "
## 7 ( 1 ) " "
## 8 ( 1 ) " "
## 9 ( 1 ) " "
## 10 ( 1 ) " "
## 11 ( 1 ) " "
## liczba_pokoiKawalerka lub garsoniera liczba_pokoiNie podano
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) " " " "
## 11 ( 1 ) " " " "
## rodzaj_nieruchomosciInne rodzaj_nieruchomosciMieszkanie wielkosc
## 1 ( 1 ) " " " " "*"
## 2 ( 1 ) " " " " "*"
## 3 ( 1 ) " " " " "*"
## 4 ( 1 ) " " " " "*"
## 5 ( 1 ) " " " " "*"
## 6 ( 1 ) " " " " "*"
## 7 ( 1 ) " " " " "*"
## 8 ( 1 ) " " " " "*"
## 9 ( 1 ) " " " " "*"
## 10 ( 1 ) " " " " "*"
## 11 ( 1 ) " " " " "*"
## parkingGaraż parkingKryty parkingNie podano parkingUlica
## 1 ( 1 ) " " " " " " " "
## 2 ( 1 ) " " " " " " " "
## 3 ( 1 ) " " " " " " " "
## 4 ( 1 ) " " " " " " " "
## 5 ( 1 ) " " " " " " " "
## 6 ( 1 ) "*" " " " " " "
## 7 ( 1 ) "*" " " " " " "
## 8 ( 1 ) "*" " " " " " "
## 9 ( 1 ) "*" " " " " " "
## 10 ( 1 ) "*" " " " " " "
## 11 ( 1 ) "*" " " " " " "
## liczba_lazienek2 łazienki liczba_lazienek3 łazienki
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " " "
## 8 ( 1 ) " " " "
## 9 ( 1 ) " " " "
## 10 ( 1 ) " " " "
## 11 ( 1 ) " " " "
## liczba_lazienek4 lub więcej łazienek liczba_lazienekNie podano
## 1 ( 1 ) " " " "
## 2 ( 1 ) " " " "
## 3 ( 1 ) " " " "
## 4 ( 1 ) " " " "
## 5 ( 1 ) " " " "
## 6 ( 1 ) " " " "
## 7 ( 1 ) " " "*"
## 8 ( 1 ) " " "*"
## 9 ( 1 ) " " "*"
## 10 ( 1 ) " " "*"
## 11 ( 1 ) " " "*"
## palacyTak przyjazne_zwierzakomTak liczba_wyrazow
## 1 ( 1 ) " " " " " "
## 2 ( 1 ) " " " " " "
## 3 ( 1 ) " " " " " "
## 4 ( 1 ) " " " " " "
## 5 ( 1 ) " " " " " "
## 6 ( 1 ) " " " " " "
## 7 ( 1 ) " " " " " "
## 8 ( 1 ) " " " " "*"
## 9 ( 1 ) " " " " "*"
## 10 ( 1 ) " " " " "*"
## 11 ( 1 ) " " " " "*"
plot(sum43$cp, xlab = "Liczba predyktorów", ylab = "Cp")
points(11, sum43$cp[11], pch = 20, col = "red")
plot(fit43, scale = "Cp")
coef(fit43, 11)
## (Intercept) lokalizacjaMokotów
## 450.545913 476.235032
## lokalizacjaOchota lokalizacjaŚródmieście
## 349.124397 649.739130
## lokalizacjaWilanów lokalizacjaWola
## 310.623299 423.324692
## lokalizacjaŻoliborz do_wynajecia_przezWłaściciel
## 394.000726 -222.266641
## wielkosc parkingGaraż
## 32.679045 271.762260
## liczba_lazienekNie podano liczba_wyrazow
## 209.638385 1.130164
Tym razem podzielimy obserwacje na dwa zestawy - treningowy i walidacyjny.
set.seed(44)
trening44 <- sample(1:nrow(dane), 9000)
fit44 <- regsubsets(cena~., dane[trening44, ], nvmax = 11, method = "forward")
## Warning in leaps.setup(x, y, wt = wt, nbest = nbest, nvmax = nvmax,
## force.in = force.in, : 1 linear dependencies found
## Reordering variables and trying again:
Teraz dokonamy predykcji na obserwacjach z zestawu testowego.
test44 <- model.matrix(cena~., dane[-trening44, ])
valBlad <-
1:length(dane) %>%
sapply(
function(x) {
coefi <- coef(fit44, id = x)
pred <- test44[, names(coefi)]%*%coefi
mean((dane$cena[-trening44]-pred)^2)
}
)
plot(
sqrt(valBlad),
ylim = c(400, 900),
xlab = "Rozmiar modelu",
ylab = "Średnia kwadratowa błędów",
pch = 19,
type = "b"
)
points(sqrt(fit44$rss[-1]/9000), col = "red", pch = 19, type = "b")
legend(
"topright",
legend = c("Trening", "Walidacja"),
col = c("red", "black"),
pch = 19
)
Na powyższym wykresie można zauważyć, że pomimo konsekwentnego spadku błędu treningowego, już przy rozmiarze modelu wynoszącym 3 błąd walidacji wypłaszcza się.
Na koniec operacje prowadzące do otrzymania takiego rezultatu zostaną ubrane w jedna funkcję.
# there was a problem with runtime: shiny, otherwise OK
predict.regsubsets <-
function(obiekt, formula, dane, id, ...) {
# form <- as.formula(obiekt$call[[2]]) # object of type 'symbol' is not subsettable
# form <- as.formula(cena ~ .) works, but not satisfactory, what if formula is different?
# form <- obiekt$call[[2]] # object of type 'symbol' is not subsettable
# form <- obiekt$call %>% as.character() %>% .[2] %>% as.formula() # object 'expr' not found
# form <- as.formula(obiekt$call %>% as.character() %>% .[2]) # object 'expr' not found
mat <- model.matrix(formula, dane)
# mat <- model.matrix(form, dane)
coefi <- coef(obiekt, id = id)
mat[, names(coefi)]%*%coefi
}
Tym razem dobierzemy model korzystając z 10 krotnej kroswalidacji.
set.seed(45)
folds <- sample(rep(1:10, length = nrow(dane)))
table(folds)
## folds
## 1 2 3 4 5 6 7 8 9 10
## 1001 1001 1001 1001 1001 1000 1000 1000 1000 1000
cvBledy <- matrix(NA, 10, 11)
for (k in 1:10) {
form <- as.formula(cena~.)
best.fit <- regsubsets(form, dane[folds!=k, ], nvmax = 11, method = "forward")
for (i in 1:length(dane)) {
pred <- predict.regsubsets(best.fit, form, dane[folds==k, ], id = i)
cvBledy[k, i] <- mean((dane$cena[folds==k]-pred)^2)
}
}
## Warning in leaps.setup(x, y, wt = wt, nbest = nbest, nvmax = nvmax,
## force.in = force.in, : 1 linear dependencies found
## Reordering variables and trying again:
## Warning in leaps.setup(x, y, wt = wt, nbest = nbest, nvmax = nvmax,
## force.in = force.in, : 1 linear dependencies found
## Reordering variables and trying again:
## Warning in leaps.setup(x, y, wt = wt, nbest = nbest, nvmax = nvmax,
## force.in = force.in, : 1 linear dependencies found
## Reordering variables and trying again:
rmse.cv <- sqrt(apply(cvBledy, 2, mean))
plot(
sqrt(valBlad),
ylim = c(400, 900),
xlab = "Rozmiar modelu",
ylab = "Średnia kwadratowa błędów",
pch = 19,
type = "b"
)
points(sqrt(fit44$rss[-1]/9000), col = "red", pch = 19, type = "b")
points(rmse.cv, col = "blue", pch = 19, type = "b")
legend(
"topright",
legend = c("10 krotna Kroswalidacja", "Trening", "Walidacja"),
col = c("blue", "red", "black"),
pch = 19
)
W przeprowadzeniu Ridge Regression pomoże nam pakiet glmnet.
library(glmnet)
## Loading required package: Matrix
## Loading required package: foreach
## Loaded glmnet 2.0-5
glmnet nie korzysta z języka formuły. Trzeba zatem podzielić dane na zestaw pedyktorów i odpowiedzi. Zanim przystąpimy do działania należy też znormalizować dane (np. sprowadzić je do przedziały (-3, 3) odejmując średnią od wartości i dzieląc przez odchylenie standardowe).
daneNorm <-
dane %>%
mutate(
cena = (cena-mean(cena))/max(cena),
wielkosc = (wielkosc-mean(wielkosc))/max(wielkosc),
liczba_wyrazow = (liczba_wyrazow-mean(liczba_wyrazow))/max(liczba_wyrazow)
)
x <- model.matrix(cena~.-1, dane)
y <- dane$cena
xn <- model.matrix(cena~.-1, daneNorm)
yn <- daneNorm$cena
fit45 <- glmnet(x, y, alpha = 0)
plot(fit45, xvar = "lambda", label = TRUE)
plot(fit45, xvar = "dev", label = TRUE)
cvRidge <- cv.glmnet(x, y, alpha = 0)
plot(cvRidge)
fit45 <- glmnet(xn, yn, alpha = 0)
plot(fit45, xvar = "lambda", label = TRUE)
plot(fit45, xvar = "dev", label = TRUE)
cvRidge <- cv.glmnet(xn, yn, alpha = 0)
plot(cvRidge)
Ridge Regression charakteryzuje się członem związanym z regularyzacją. Oznacza to, że dla dużej wartości współczynnika regularyzacji lambda będą musiały występować odpowiednio małe współczynniki Beta. Ten typ regresji opiera się więc na wszystkich predyktorach. Minimalizuje tylko ich współczynniki.
Na powyższych wykresach widać, że dla dużej lambdy współczynniki Beta zostają niemalże wyzerowane oraz że najmniejszy błąd otrzymujemy dla najmniejszej wartości lambda. Oznacza to, że udział każdego z czynników jest istotny dla budowanego modelu (posiada odpowiednio duży stojący przy nim współczynnik Beta). Potwierdza to więc poprzednie obserwacje, gdzie najskuteczniejszy model korzystał ze wszystkich 11 predyktorów. Fraction Deviance Explained jest jak R^2.
Lasso czyli Least Absolute Shrinkage and Selection Operator różni się od poprzedniej metody elementem regulującym. Tym razem wartości Beta mogą zostać sprowadzone do zera, przez co część predyktorów może nie wziąć udziału w budowie modelu.
fit46 <- glmnet(x, y)
plot(fit46, xvar = "lambda", label = TRUE)
plot(fit46, xvar = "dev", label = TRUE)
cvLasso <- cv.glmnet(x, y)
plot(cvLasso)
fit47 <- glmnet(xn, yn)
plot(fit47, xvar = "lambda", label = TRUE)
plot(fit47, xvar = "dev", label = TRUE)
cvLassoN <- cv.glmnet(xn, yn)
plot(cvLassoN)
(coef(cvLassoN) %>% as.vector() != 0) %>% sum()
## [1] 26
Na sam koniec spróbujmy jeszcze dobrać parametr lambda za pomocą metody walidacji (wcześniejszy set treningowy i set testowy).
lasso.tr <- glmnet(x[trening44, ], y[trening44])
lasso.tr
##
## Call: glmnet(x = x[trening44, ], y = y[trening44])
##
## Df %Dev Lambda
## [1,] 0 0.00000 547.8000
## [2,] 1 0.07787 499.1000
## [3,] 1 0.14250 454.8000
## [4,] 1 0.19620 414.4000
## [5,] 1 0.24080 377.6000
## [6,] 1 0.27780 344.0000
## [7,] 1 0.30850 313.5000
## [8,] 1 0.33400 285.6000
## [9,] 1 0.35510 260.2000
## [10,] 1 0.37270 237.1000
## [11,] 1 0.38730 216.1000
## [12,] 1 0.39940 196.9000
## [13,] 2 0.41040 179.4000
## [14,] 2 0.42390 163.4000
## [15,] 2 0.43500 148.9000
## [16,] 3 0.44490 135.7000
## [17,] 3 0.45790 123.6000
## [18,] 3 0.46860 112.7000
## [19,] 3 0.47760 102.6000
## [20,] 6 0.48940 93.5300
## [21,] 8 0.50410 85.2200
## [22,] 10 0.52010 77.6500
## [23,] 11 0.53390 70.7500
## [24,] 11 0.54600 64.4600
## [25,] 14 0.55700 58.7400
## [26,] 14 0.56680 53.5200
## [27,] 16 0.57560 48.7600
## [28,] 17 0.58400 44.4300
## [29,] 18 0.59120 40.4900
## [30,] 18 0.59740 36.8900
## [31,] 20 0.60260 33.6100
## [32,] 20 0.60730 30.6300
## [33,] 20 0.61120 27.9000
## [34,] 21 0.61450 25.4300
## [35,] 22 0.61730 23.1700
## [36,] 22 0.62000 21.1100
## [37,] 24 0.62220 19.2300
## [38,] 24 0.62420 17.5300
## [39,] 25 0.62590 15.9700
## [40,] 25 0.62730 14.5500
## [41,] 27 0.62850 13.2600
## [42,] 27 0.62950 12.0800
## [43,] 27 0.63030 11.0100
## [44,] 27 0.63100 10.0300
## [45,] 29 0.63170 9.1380
## [46,] 30 0.63220 8.3260
## [47,] 31 0.63270 7.5860
## [48,] 31 0.63310 6.9120
## [49,] 32 0.63340 6.2980
## [50,] 32 0.63370 5.7390
## [51,] 32 0.63390 5.2290
## [52,] 33 0.63410 4.7640
## [53,] 33 0.63430 4.3410
## [54,] 34 0.63440 3.9550
## [55,] 34 0.63460 3.6040
## [56,] 34 0.63470 3.2840
## [57,] 34 0.63470 2.9920
## [58,] 34 0.63480 2.7260
## [59,] 34 0.63490 2.4840
## [60,] 34 0.63490 2.2630
## [61,] 34 0.63500 2.0620
## [62,] 35 0.63500 1.8790
## [63,] 35 0.63500 1.7120
## [64,] 35 0.63510 1.5600
## [65,] 35 0.63510 1.4220
## [66,] 35 0.63510 1.2950
## [67,] 35 0.63510 1.1800
## [68,] 35 0.63510 1.0750
## [69,] 35 0.63520 0.9798
## [70,] 35 0.63520 0.8927
## [71,] 35 0.63520 0.8134
## [72,] 35 0.63520 0.7412
## [73,] 36 0.63520 0.6753
pred <- predict(lasso.tr, x[-trening44, ])
dim(pred)
## [1] 1005 73
rmse <- sqrt(apply((y[-trening44]-pred)^2, 2, mean))
plot(log(lasso.tr$lambda), rmse, type = "b", xlab = "Log(lambda)")
lam.best <- lasso.tr$lambda[order(rmse)[1]]
lam.best
## [1] 4.764327
lam.best %>% log()
## [1] 1.561156
coef(lasso.tr, s = lam.best)
## 41 x 1 sparse Matrix of class "dgCMatrix"
## 1
## (Intercept) 1050.1065628
## lokalizacjaBemowo -436.2768682
## lokalizacjaBiałołęka -666.7034787
## lokalizacjaBielany -253.9326917
## lokalizacjaMokotów 147.2142431
## lokalizacjaOchota 19.1241968
## lokalizacjaPraga Północ -43.9518359
## lokalizacjaPraga Południe -212.7163070
## lokalizacjaRembertów -392.1580289
## lokalizacjaŚródmieście 325.6986109
## lokalizacjaTargówek -518.4849000
## lokalizacjaUrsus -519.0250234
## lokalizacjaUrsynów -238.6313869
## lokalizacjaWawer -693.1287036
## lokalizacjaWesoła -1095.6705374
## lokalizacjaWilanów .
## lokalizacjaWłochy -214.3443473
## lokalizacjaWola 79.1850594
## lokalizacjaŻoliborz 40.5228167
## do_wynajecia_przezNie podano -2.9852110
## do_wynajecia_przezWłaściciel -196.7439068
## liczba_pokoi3 pokoje 185.2279425
## liczba_pokoi4 pokoje 209.4840714
## liczba_pokoi5 pokoi 191.3150951
## liczba_pokoi6 lub więcej pokoi .
## liczba_pokoiKawalerka lub garsoniera -169.3703593
## liczba_pokoiNie podano .
## rodzaj_nieruchomosciInne -156.4845950
## rodzaj_nieruchomosciMieszkanie .
## wielkosc 27.3535489
## parkingGaraż 260.0328987
## parkingKryty 61.0748403
## parkingNie podano .
## parkingUlica -36.8208370
## liczba_lazienek2 łazienki 26.3565201
## liczba_lazienek3 łazienki .
## liczba_lazienek4 lub więcej łazienek -167.5560629
## liczba_lazienekNie podano 194.5708189
## palacyTak 9.9588596
## przyjazne_zwierzakomTak .
## liczba_wyrazow 0.9526509
Można zauważyć, że w tym wypadku otrzymaliśmy model, który nie jest najlepszym z możliwych, ale też nie jest gorszy niż najbardziej elastyczny proponowany przez kroswalidację.